python基础篇-异常

python异常的标准格式:

try:
    dosomething() //可能出现逻辑错误的地方
except Excepthon as result:  //异常信息str
    print(result)  //发生异常要执行的代码
else:
    doRightthing() //未捕获异常要执行的代码
finally:
    do_must_doings()  //必然要执行的代码,比如f.close()

ps: Exceotion 可以不写,也可以指定异常,如NameError

ps:TraceBack的最后,前半部分为指定异常的类型,后接一次的_str_()

image

 ps: 一般try下方只放一行左右的指定尝试执行的代码

ps:捕获多个指定异常,异常放在元组中

   excetp (NameError,ZeroDivisionError):

ps:Exception 或者不写 捕获所有异常,Exception是所有异常类的基类

ps:异常的传递  

  异常可以嵌套,从外而内

import time
 
try:
    f.open('demo.txt')
    try:
        while True:
            content = f.readline()
            if len(content) == 0:
                break;
            time.sleep(2)
            print(content)
    except   Exception:
        print('读取错误')
except:
    print('文件打开出错')

 

自定义异常: 自定义异常类--抛出异常 -- 捕获异常

class ShortInputError(Exception):
    def _init_(self, str, len = 8):
        self.str = str
        self.len = len

    def _str_(self):
        return f'输入字符{self.str}的长度 {len(self.str)},小于指定长度{self.len}'

def main():
    try:
        con  = input('请输入:')
        if len(con) < 8:
            raise ShortInputError(con) //raise关键字抛出异常
    except ShortInputError as result:
        print(result)
    else:
        print('有效输入')

  

 

posted @ 2025-08-28 17:45  Wind_Swing_Dunn  阅读(10)  评论(0)    收藏  举报