Python全栈

Python自定义异常与抛出异常

2021-08-22  本文已影响0人  InsaneLoafer

目录

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

自定义异常类

实战

#!/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 <module>
    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
上一篇 下一篇

猜你喜欢

热点阅读