Python自定义异常与抛出异常

目录

  • 自定义抛出异常raise
  • 自定义异常类

自定义抛出异常函数--raise

  • 将信息以报错的形式抛出
  • 用法:
    • raise异常类型(message)
  • 参数:
    • message : 错误信息

自定义异常类

  • 继承基类—Exception
  • 在构造函数中定义错误信息


实战

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time     : 2021/8/18 11:01
# @Author   : InsaneLoafer
# @File     : try_custom.py

def test(number):
    if number == 100:
        raise ValueError('number 不可以是100')
    return number

result = test(50)
print(result)

# result = test(100)

def test2(number):
    try:
        return test(number)
    except ValueError as e:
        return e

result = test2(100)
print(result)

def test3():
    # raise '错误'  # 没有基于基础异常类,会报错
    pass

def test4(name):
    if name == 'insane':
        raise Exception('insane 不可以被填写')
    return name

# result = test4('insane')
# print(result)

class NumberLimitError(Exception):
    def __init__(self, message):
        self.message = message


class NameLimitError(Exception):
    def __init__(self, message):
        self.message = message


def test5(name):
    if name == 'insane':
        raise NameLimitError('insane 不可以被填写')
    return name

def test6(number):
    if number > 100:
        raise NumberLimitError('number 不可以大于100')
    return number

print('--------')
try:
    test5('insane')
except NameLimitError as e:
    print(e)

try:
    test6(101)
except NumberLimitError as e:
    print(e)

test5('insane')
Traceback (most recent call last):
  File "D:/My_Files/Python Project/pythonlean/python_catch/try_custom.py", line 69, in 
    test5('insane')
  File "D:/My_Files/Python Project/pythonlean/python_catch/try_custom.py", line 50, in test5
    raise NameLimitError('insane 不可以被填写')
__main__.NameLimitError: insane 不可以被填写
50
number 不可以是100
--------
insane 不可以被填写
number 不可以大于100

Process finished with exit code 1

你可能感兴趣的:(Python自定义异常与抛出异常)