在我的工作中,程序一般用来处理大量的数据,异常处理一般是为了防止错误的数据导致程序崩溃,所以格式一般是下面这种。确实有用,但也确实很傻。
下面代码主要起一个出错跳过的作用:
try:
可能出现问题代码
except:
pass
else:
不出现异常后的处理代码
finally:
不出现和出现异常都会执行的代码
1.基本语法
包含在try中的代码如果抛出错误,将执行except内代码,如果没有出现错误,则执行else内代码。最后,统一执行finally内的代码。
2.except设置捕获异常类型
例如下面处理
try:
1 / 0
except ZeroDivisionError:
print('Divided by zero')
当然,也可以在except后设置多个异常类型,如下形式:
except ( except ValueError,ZeroDivisionError)
3.使用raise 抛出异常
raise NotImplementedError('该功能暂未实现')
# 通过raise抛出异常,可以起到提示作用
4.自定义异常类型
当标准的exception不能满足你的需求时,你可以选择自定义exception类型。
class LunchError(Exception):
pass
raise LunchError("程序启动报错")
5.怎么更好的使用异常处理
- 确保except,finally,else代码不会产生报错。
- 尽量不要让异常处理作为程序逻辑控制的一部分,少在控制逻辑中使用异常处理,如果非要使用也要在except 后面设置期望捕获的错误。
- 用异常捕获来提高程序的健壮性,除此外尽量少用。