目录
- 自定义抛出异常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 <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
网友评论