Python_16异常处理
一、异常处理基本概念
异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序的运行期间,干扰了正常的指令流程。
一般情况下,在Python无法处理程序时就会发生一个异常,异常是Python的对象,表示一个错误,当python脚本发生异常时,我们就需要捕获处理它,否则程序会终止执行。
在Python中,所有的异常类都是基类Exception的成员。所有异常都从基类Exception继承,而且都是在exceptions模块中定义。python自动将所有的异常名称放在内建的命名空间中,所以程序不必导入Exception模块即可使用异常。
捕获异常可以使用try/except语句,try/except语句用来监测try语句快中的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在try里捕获它。
1、try/except
异常捕捉可以使用 try/except 语句。
1 #异常处理概念及基本使用2022.08.17PM23:15 2 try: 3 num1 = input('请输入num1: \n') 4 num2 = input('请输入num2: \n') 5 s = int(num1)+int(num2) 6 print('和为:'+str(s)) 7 except ValueError as e: #Python3系列中 e= ValueError() 8 print('error:输入非法,原因是:'+str(e)) 9 10 print('hello')
2、try/except...else
try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。
else 子句将在 try 子句没有发生任何异常的时候执行。
1 #异常处理概念及基本使用2022.08.17PM23:15 2 try: 3 num1 = input('请输入num1: \n') 4 num2 = input('请输入num2: \n') 5 s = int(num1)+int(num2) 6 print('和为:'+str(s)) 7 lista = [1,2,3,4] 8 print(lista[3]) 9 except ValueError as e: #Python3系列中 e= ValueError() 10 print('error:输入非法,原因是:'+str(e)) 11 except IndexError as e: 12 print('error:列表访问异常,原因是:'+str(e)) 13 except Exception as e: #如果无法定位原因,可是使用Exception,因为它是所有异常类的父类,但一般把Exception放在最后 14 print('error:系统异常') 15 else: 16 print('代码不报错就执行') 17 28 print('hello')
3、try-finally 语句
无论是否发生异常都将执行最后的代码
1 #异常处理概念及基本使用2022.08.17PM23:15 2 try: 3 num1 = input('请输入num1: \n') 4 num2 = input('请输入num2: \n') 5 s = int(num1)+int(num2) 6 print('和为:'+str(s)) 7 lista = [1,2,3,4] 8 print(lista[3]) 9 except ValueError as e: #Python3系列中 e= ValueError() 10 print('error:输入非法,原因是:'+str(e)) 11 except IndexError as e: 12 print('error:列表访问异常,原因是:'+str(e)) 13 except Exception as e: #如果无法定位原因,可是使用Exception,因为它是所有异常类的父类,但一般把Exception放在最后 14 print('error:系统异常') 15 else: 16 print('代码不报错就执行') 17 finally: 18 print('我一直执行') #不管报不报错一直执行 19 20 print('hello')
4、raise自定义异常
通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Excetion类,通过直接或间接继承的方式。自定义异常使用raise语句引发,而且只能通过人工方式触发。
1 #自定义异常,至此Python基本语法全部学完 2 class LoginError(Exception): 3 def __init__(self,name,password): 4 self.name = name 5 self.password = password 6 try: 7 userName = input('请输入用户名:\n') 8 passWord = input('请输入密码:\n') 9 if(userName != 'admin' or passWord != '123456'): 10 raise LoginError(userName,passWord) 11 else: 12 print('登录成功') 13 except LoginError as e: 14 print('您输入的用户名:{} 或密码:{}出错'.format(e.name,e.password)) 15 except Exception as e: 16 print('系统异常') 17 18 #系统自带异常:预定义异常解决系统逻辑上的错误,自定义异常:业务逻辑上的错误
原创不易,转载请说明出处http://www.cnblogs.com/yyym 谢谢!