一杯茶,一包烟,一个Bug改一天
(资料图)
程序错误,即英文的Bug,也称为缺陷、臭虫,是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象。 早期的计算机由于体积非常庞大,有些小虫子可能会钻入机器内部,造成计算机工作失灵。史上的第一只 "Bug" ,真的是因为一只飞蛾意外走入一电脑而引致故障,因此Bug从原意为臭虫引申为程序错误。 一些有趣的Bug有时也会成为一种乐趣。在电脑游戏中,一些Bug,假如不令游戏出现大错误的话,经常会变成一种玩游戏时的秘技。
异常:
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 一般情况下,在Python无法正常处理程序时就会发生一个异常。 异常是Python对象,表示一个错误。 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
处理:
捕捉异常可以使用try/except语句。 try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。 如果你不想在异常发生时结束你的程序,只需在try里捕获它。
测试代码:
try: a=int(input("请输入第一个整数")) b=int(input("请输入第二个整数")) result=a/b print("结果为:",result)except ZeroDivisionError: print("对不起,除数不允许为0")except ValueError: print("对不起,只能输入数字串")print("程序结束")
测试结果1:
请输入第一个整数python 对不起,只能输入数字串 程序结束
进程已结束,退出代码为 0
测试结果2:
请输入第一个整数10 请输入第二个整数25 结果为: 0.4 程序结束
进程已结束,退出代码为 0
测试结果3:
请输入第一个整数10 请输入第二个整数0 对不起,除数不允许为0 程序结束
进程已结束,退出代码为 0
测试代码:
try: a=int(input("请输入第一个整数")) b=int(input("请输入第二个整数")) result=a/bexcept BaseException: print("出错了")else: print("结果为:",result)print("程序结束")
测试结果1:
请输入第一个整数1 请输入第二个整数0 出错了 程序结束
进程已结束,退出代码为 0
测试结果2:
请输入第一个整数a 出错了 程序结束
进程已结束,退出代码为 0
测试结果3:
请输入第一个整数1 请输入第二个整数2 结果为: 0.5 程序结束
进程已结束,退出代码为 0
测试代码:
try: a=int(input("请输入第一个整数")) b=int(input("请输入第二个整数")) result=a/bexcept BaseException: print("出错了")else: print("结果为:",result)finally: print("无论是否产生异常,总会被执行的代码")print("程序结束")
测试结果:
请输入第一个整数25 请输入第二个整数0 出错了 无论是否产生异常,总会被执行的代码 程序结束
进程已结束,退出代码为 0
try: <语句> #运行别的代码 except <名字name>: <语句> #如果在try部份引发了"name"异常 else: <语句> #如果没有异常发生 finally: <语句> #无论是否产生异常,总会被执行的代码
该模块提供了一个标准接口,用于提取,格式和打印Python程序的堆栈痕迹。 它完全模仿了Python解释器在打印堆栈跟踪时的行为。 当您想在程序控制下打印堆栈迹线时,这非常有用,例如在解释器周围的“包装器”中。
在日常开发中,我们会做一些基本的异常处理,但是有时候只能打印我们处理的结果或者将异常打印出来,不能直观的知道在哪个文件中的哪一行出错。traceback模块就是为了解决这个问题出现的。
测试代码:
import tracebacktry: print("-----------") print(1/0)except: traceback.print_exc()
测试结果:
Traceback (most recent call last): File "E:\pythonProject\Python_YSJ\chap11\test.py", line 7, in
print(1/0) ZeroDivisionError: division by zero进程已结束,退出代码为 0