在编写Python代码或开发实际应用的项目时,程序报出异常或错误是在所难免的,那么我们应该怎样处理这些异常呢?下面来说一下方法。
1.使用try...except捕捉异常
try:
s=1/0
except IndexError:
print ('except')
except KeyError:
print ('Keyerror')
except ZeroDivisionError:
print ('ZeroDivisionError')
或
try:
s=1/0
except:
print ('出现异常')
或有多个异常名称的格式
try:
s = 1/0
except(IndexError,KeyError,ZeroDivisionError),e:
print (e)
2.使用try ...except...else语句捕捉异常
当try块中的代码没有异常时,跳过except块中的代码,执行else块中的代码
工作原理:
1)。如果 try 代码块语句的执行过程中出现异常,Python 会跳回 try 并执行第一个与异常匹配的 except 块中的代码
2)。如果异常发生在 try 代码块中,并且没有匹配的 except 子句,则会将异常名称传递给程序前面输入的 try,或者转到进程的顶层(这将导致 python 终止当前程序并打印默认错误信息)
3)。如果try块中的代码执行无异常,python会执行else块中的代码
3.使用try...finally捕捉异常
当 try 块中包含 finally 语句时,python 会在执行完 try 块中的代码后执行 finally 块中的代码(无论 try 块中的代码是否有异常,finally 块中的代码都会执行)
工作原理:
1)。如果在try块中的代码执行时没有出现异常,Python会跳转到finally语句并执行该代码块,然后继续执行程序中finally语句之后的代码
2)。如果在执行 try 块中的代码时发生异常,Python 仍会执行 finally 语句中的代码块,但随后将异常传递给上层 try 语句或顶层默认处理程序,程序将not continue to execute 导致异常的语句之后的 try 块中的代码。也就是说,即使发生异常,finally 代码块仍然会被执行。与except不同的是,finally不会终止异常,而是会在finally代码块执行后继续发生。
4.使用raise抛出异常(手工引发异常)
raise<异常对象>
“异常对象”表示将抛出异常的异常名称,异常名称标识具体的异常类。 raise语句还可以指定参数来初始化异常对象,方法是在异常类的名称后加逗号并指定参数(或参数元组)。 raise 语句一旦执行,raise 语句后面的代码就无法执行
raise<异常对象>,<异常信息标识>
例子:
try:
raise NameError
except NameError:
print ('抛出一个异常')
5.自定义异常
格式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 exceotion occurred,value:',e.value)
6.使用assert语句
用于检查条件表达式是否为真。也称为断言语句,即断言检测到的表达式始终为真,如果断言失败将引发 AssertionError 异常。
语法格式:assert<条件判断表达式>
username = 'admin'
password='123456'
assert username =='admin' and password == 'admin','密码错误!'
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 基于LBPH的python人脸识别操作11/25
- ♥ 如何在 python 中使用注释?12/11
- ♥ 哪个python ide更好12/14
- ♥ python数据结构堆简介11/07
- ♥ 如何解决python安装失败的原因08/22
- ♥ python安装第三方函数库的方法12/03
内容反馈