异常的抛出
Python 使用 raise 语句抛出一个指定的异常。
语法:
raise [Exception [, args [, traceback]]]
异常抛出示例:
x = 10
if x > 5:
raise Exception('x 不能大于 5。x 的值为: {}'.format(x))
以上代码输出如下:
Traceback (most recent call last):
File "test.py", line 3, in <module>
raise Exception('x 不能大于 5。x 的值为: {}'.format(x))
Exception: x 不能大于 5。x 的值为: 10
异常的捕获
异常捕捉可以使用 try/except 语句。
基本用法
while True:
try:
x = int(input("请输入一个数字: "))
break
except ValueError:
print("您输入的不是数字,请再次尝试输入!")
同时处理多个异常
except (RuntimeError, TypeError, NameError):
# do something......
pass
分别处理多个异常
最后一个except子句可忽略异常的名称,它将被当作通配符使用。可以处理后,再把异常抛出。
import sys
try:
f = open('myfile.txt')
s = f.readline()
i = int(s.strip())
except OSError as err:
print("OS error: {0}".format(err))
except ValueError:
print("Could not convert data to an integer.")
except:
print("Unexpected error:", sys.exc_info()[0])
raise
自定义异常
异常类继承自 Exception
类,直接继承或间接继承。
class NoSuchElementException(WebDriverException):
"""
Thrown when element could not be found.
"""
pass
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
try:
raise MyError(2*2)
except MyError as e:
print('My exception occurred, value:', e.value)
输出:
My exception occurred, value: 4
Python3 错误和异常 https://www.runoob.com/python3/python3-errors-execptions.html
python标准异常 https://www.runoob.com/python/python-exceptions.html
浅谈 Python 抛出异常(raise)、自定义异常(Exception)、传递异常,附:标准异常类 http://php-note.com/article/1834.html