Python:异常处理语句

今天,我们来学习异常处理。

1.什么是异常

异常,就是Python运行时发生的错误,如下方的例子:

# 输出n的2倍
n = int(input("请输入一个数字:"))
print(n, "的2倍是", 2*n)

输入数字是没有问题的,但是输入字符呢?


请输入一个数字:abc
Traceback (most recent call last):
File “C:/me/Python/n的2倍.py”, line 1, in < module >
n = int(input(“请输入一个数字:”))
ValueError: invalid literal for int() with base 10: ‘abc’


Traceback是Python的一个内置模块,主要用来提示异常信息。
Python引发了异常ValueError,提示’abc’不能转化为整数类型。
异常包含了有关于Python代码的信息,训练有素的攻击者会根据这些信息对程序进行攻击。
那该怎么办呢?

2.try-except-else 错误处理语句

try:
	# 输出n的2倍
	n = int(input("请输入一个数字:"))
except ValueError:
	print("不能输入字符!")
else:
	print(n, "的2倍是", 2*n)

输入数字:


请输入一个数字:11
11 的2倍是 22


输入字符:


请输入一个数字:abc
不能输入字符!


怎么样,是不是很神奇?我们来看一下这个语句的每个部分。

  1. try:包含可能错误的代码。
  2. except:后面跟着要处理的错误,在下方缩进写入处理错误的代码。
  3. else:如果没有错误,则执行else内的语句

3.try-except-finally-else 错误处理语句

try:
	# 输出n的2倍
	n = int(input("请输入一个数字:"))
except ValueError:
	print("不能输入字符!")
finally:
	print("程序运行结束")
else:
	print(n, "的2倍是", 2*n)

在上述代码中,我们加入finally语句,try的代码无论是否出现异常,它都会执行缩进了的代码。
注意:如果一个错误处理语句同时存在finally和else,必须把finally语句放在else语句前面,否则会报错!
当然,在错误处理语句中,也可以只有try和except。

4.万能错误 Exception

try:
	# 输出n的2倍
	n = int(input("请输入一个数字:"))
except ValueError:
	print("不能输入字符!")
except Exception:
	print("错误!")
finally:
	print("程序运行结束")
else:
	print(n, "的2倍是", 2*n)

这次我们使用了Exception错误,这是一个无论发生什么错误都会触发的异常,在Traceback不会显示,只能用except进行捕捉。
提示:Exception错误处理应该排在except语句的最后,就像普通的异常无法处理这个错误,就让“特种兵”Exception错误来处理


好了,今天的课程就到这里了,感兴趣的可以收藏哦!

猜你喜欢

转载自blog.csdn.net/wangzirui32/article/details/113094211
今日推荐