Python3异常处理, raise异常,自定义异常类

  1. 常见的异常处理语法格式:
    else 和finally 非必须
try:
    尝试执行某个操作
    如果没有异常,操作完成
    如果发生异常,捕捉并尝试解决异常

except 异常类a as e:  # e 是一个变量,记录异常类的信息,通常是Exception
    如果发生异常a,执行尝试处理异常a的操作
except 异常类b as f:   # 可以定义一个或多个except 语句
    如果发生异常a,执行尝试处理异常a的操作
except (异常类c, 异常类d) as h:
    如果多个发生异常,执行尝试处理多个异常的操作
else:
    如果没有发生异常,执行的操作
finally:
    无论如何都要执行的操作
  1. 主动抛出一个异常,定义异常信息内容:
    raise NameError([str]) : raise 异常类型(异常参数)
    通过raise 引发异常时,raise 后面的操作将不会被执行
def number():
    a = int(input('Plase input a number: '))
    b = int(input('Plase input a number: '))
    if a < b:
        raise Exception("a < b")
    print("a is larger than b")  # 如果a

try:
    number()
except Exception as e:
    print(e)
  1. 自定义异常类
class InputError(Exception):    # 创建一个新的exception类来抛出自己的异常。
    # 异常应该继承自 Exception 类,包括直接继承,或者间接继承
    def __init__(self, errorinfor):
        self.error = errorinfor
       
    def __str__(self):
        return self.error

def score():
    grade = int(input('你的成绩是:'))
    if grade <= 0 or grade >= 150:
        raise InputError('考试分数只能在0-150')
try:
    score()
except InputError as e:
    print(e)

常见异常类信息:
Python3异常处理, raise异常,自定义异常类_第1张图片

你可能感兴趣的:(python)