1)什么叫做异常
程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。
2)异常和错误的区别
Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。
Exception(异常)表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。
3)python中的异常
(1)错误的示例
代码:
#错误的示例
` i = input("请输入一个数字")
if i == 0
print("i的值不为0")
结果:
if i == 0
^
SyntaxError: invalid syntax
表示没有分号
(2)异常的示例
代码:
#除零异常
i = 0
sum = 8
d = sum / i
print(d)
结果:
Traceback (most recent call last):
File "/home/jsj/PycharmProject/myjob/Exception_04.py", line 22, in <module>
d = sum / i
ZeroDivisionError: division by zero
代码 :
#转换异常
i = 0
str1 = "i’m happy now"
print(str1 + i)
结果:
Traceback (most recent call last):
File "/home/jsj/PycharmProject/myjob/Exception_04.py", line 27, in <module>
print(str1 + i)
TypeError: must be str, not int
4)什么叫做异常处理
各种编程语言在处理异常方面具有非常显著的不同点(错误检测与异常处理区别在于:错误检测是在正常的程序流中,处理不可预见问题的代码,例如一个调用操作未能成功结束)。某些编程语言有这样的函数:当输入存在非法数据时不能被安全地调用,或者返回值不能与异常进行有效的区别。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。
5)python中的异常处理
(1)对异常做处理(try...except)
代码 :
#异常处理
try:
i = int(input("请不输入一个为0的数值"))
sum = 8
print(sum / i)
except ZeroDivisionError:#表示捕获除0的异常
print("请输入一个不为0的数值")
结果:
当输入为0的时候:
请不输入一个为0的数值0
请输入一个不为0的数值
当输入不为0的时候:
请不输入一个为0的数值1
8.0
(2)异常处理(try ... except ....finally)
代码:
import sys
try:
f = open("/home/jsj/桌面/pythonwork/test.txt") # 在Python中默认的是读文件
while True:
line = f.readline() # 每次读取一行
if len(line) == 0:
break
print(line)
except FileNotFoundError:
print("文件不存在!!")
finally:#不管怎么样都要执行
sys.exit()
结果:
当文件存在的时候:
i love China!!
i hope everyone save
当文件不存在的时候:
文件不存在!!