程序在运行的过程中,产生了异常,这时,我们可能会有两种想法,第一种是针对这个异常做某些特殊的处理来进行程序的降级处理;第二种是希望程序忽略这个异常继续执行下去,这个异常可能并不干扰主逻辑的执行。
那这个时候我们怎么办呢?
9月9日19:30,誉天樊老师继续开讲“零基础小白学Python”,一次课带你搞定Python异常处理,告别xxxxError!
1.掌握python异常处理
2.结合企业各种场景实战解决异常
3.深度剖析except异常处理机制精华
异常处理实例
我们用一个实例体会下关于try语句的要点。一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行
最后一个except子句可以忽略异常的名称,它将被当作通配符使用
print("start.....")
try:
x = int(input("Please enter a number: "))
print("number:",x)
print(100/x)
print("ok....")
except ValueError:
print("非纯数字错误!")
except ZeroDivisionError:
print("不可以为零错误!")
except:
print("可选的未知错误!")
print("end.....")一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组
print("start.....")
try:
x = int(input("Please enter a number: "))
print("number:",x)
print(100/x)
print("ok....")
except (ValueError,ZeroDivisionError):
print("非纯数字或不可以为零错误!")
except:
print("可选的未知错误!")
raise #重新抛出这个异常
print("end.....")
抛出异常(自行抛出异常)
Python 使用 raise 语句抛出一个指定的异常。例如:
>>> raise NameError('HiThere')
Traceback (most recent call last):
File "", line 1, in ?
NameError: HiThereraise 唯一的一个参数指定了要被抛出的异常。它必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。
如果你只想知道这是否抛出了一个异常,并不想去处理它,那么一个简单的 raise 语句就可以再次把它抛出。
>>> try:
raise NameError('HiThere')
except NameError:
print('An exception flew by!')
raise
An exception flew by!
Traceback (most recent call last):
File "", line 2, in ?
NameError: HiThere