异常处理

Posted sun-10387834

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常处理相关的知识,希望对你有一定的参考价值。

一,什么是异常和错误?

  异常和错误是不同的概念,错误大都是指python语法上的错误,编译时就会报错。异常是指不符合客观逻辑,或者逻辑上产生得到错误,比如res=1/0,,就是一个异常。

错误:

1 if True
2     print("a")

 

异常:

1 res=1/0
2 print(res)  # 打印错误信息:ZeroDivisionError: division by zero

 

 

二,如何处理异常?

  异常的处理可以使用if判断进行处理(low的方式),最常用的是使用try except进行捕获。

使用try except进行捕获处理:

1 inp = input("请输入数字:")
2 try:
3     inp = int(inp)  # 主程序
4 except Exception as e:  # 万能异常类
5     print(e)
6 else:  # 如果程序没有异常发生时执行
7     print("程序没有任何异常!")
8 finally:  # 无论程序有没有异常都会执行
9     print("这是finally方法!")

 

三,异常其他相关

raise抛出异常(可用于主动抛出一个异常):

1 #Author : Kelvin
2 #Date : 2019/1/27 20:33
3 
4 inp = int(input("请输入数字:"))
5 if inp==1:
6     print("程序正常执行!")
7 else:
8     raise ValueError("输入的数值太大!")

assert断言(判断assert后面的条件是否成立,再决定是否执行assert后面的代码):

 1 #Author : Kelvin
 2 #Date : 2019/1/27 20:39
 3 
 4 print("打印的第一个语句!")
 5 
 6 assert 1==1  #如果判断结果为True,则继续执行后面的代码
 7 
 8 print("打印的第二个语句!")
 9 
10 """输出结果:
11 打印的第一个语句!
12 打印的第二个语句!
13 """
 1 #Author : Kelvin
 2 #Date : 2019/1/27 20:39
 3 
 4 print("打印的第一个语句!")
 5 
 6 assert 1==2  #如果判断结果为False,则停止执行后面的代码
 7 
 8 print("打印的第二个语句!")
 9 
10 """输出结果:
11 打印的第一个语句!
12 Traceback (most recent call last):
13   File "C:/Users/Administrator/PycharmProjects/day07/异常/assert.py", line 6, in <module>
14     assert 1==2  #如果判断结果为False,则停止执行后面的代码
15 AssertionError
16 """

 

以上是关于异常处理的主要内容,如果未能解决你的问题,请参考以下文章

使用片段中的处理程序时出现非法状态异常

Java异常处理机制

java 反射代码片段

java.util.MissingResourceException: Can't find bundle for base name init, locale zh_CN问题的处理(代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

片段中的Android致命异常