当Python出现运行时的输入掉坑,有对应的处理机制
- try - except
try:
n1 = int(input("被除整数:"))
n2 = int(input("除整数:"))
print('结果:', n1/n2)
except ZeroDivisionError: # 捕获异常,然后继续执行下面的代码
print('0不能做除数')
except ValueError:
print('只能输入数字串')
print('代码结束')
- try - except - else
try:
n1 = int(input("被除整数:"))
n2 = int(input("除整数:"))
result = n1 / n2
except BaseException as e:
print('Error: ', e)
else: # 无异常就执行else语句
print('结果为:', result)
- try - except - else- finally
try:
n1 = int(input("被除整数:"))
n2 = int(input("除整数:"))
result = n1 / n2
except BaseException as e:
print('Error: ', e)
else: # 无异常就执行else语句
print('结果为:', result)
finally: # 无论如何都会执行finally语句
print('无论如何,都会执行此段代码')
- traceback模块,打印异常信息,可以写入到日志里
import traceback
try:
print('-------')
print(1/0)
except:
traceback.print_exc()
上面代码中的‘-----’的输出位置不一定,这和线程有关。