'''BUG的由来及分类 不同异常类型的处理方式 异常处理机制 pycharm的调试模式''' #Bug的常见类型 #粗心导致的语法错误SyntaxError age=input('请输入你的年龄') print(type(age)) if int(age)>=18: print('成年人') else: print('小孩子') i=0 while i<10: print(i) i+=1 #知识不熟练导致的错误 #索引越界问题indexerror #append()方法的使用掌握不熟练 lst=[11,22,33,44] #print(lst[4]) IndexError: list index out of range print(lst[3]) lst=[] #lst=qppend('a','b','c') NameError: name 'qppend' is not defined lst.append('a') #append()方法一次只能添加一个元素 print(lst) #思路不清导致的问题 #使用print()函数 #使用#暂时注释部分代码 #被动掉坑:程序代码逻辑没有错,只是因为用户错误操作或者一些'例外情况'而导致的程序崩溃 #解决方案:Python提供了异常处理机制,可以在异常出现时及时捕获,然后'内部消化',让程序继续进行 try: a=int(input('请输入第一个整数')) b=int(input('请输入第二个整数')) result=a/b print('结果为',result) except ZeroDivisionError: print('对不起,除数不允许为0') except ValueError: print('只能输入字符串') print('程序结束') # try-except-else和try-except-else-finally结构 #try-except-else结构 #如果try块中没有抛出异常,则执行else块,如果try中抛出异常,则执行except块 try: n1=int(input('请输入第一个整数')) n2=int(input('请输入第二个整数')) result=n1/n2 except BaseException as e: print('出错了') print(e) else: print('结果为:',result) #try-except-else-finally结构 #Finally块无论是否发生异常都会被执行,能常用来释放try块中申请的资源 try: n1=int(input('请输入第一个整数')) n2=int(input('请输入第二个整数')) result=n1/n2 except BaseException as e: print('出错了') print(e) else: print('结果为:',result) finally: print('无论是否产生异常,总会被执行的代码') print('程序结束') '''Python中常见的异常类型 ZeroDivisionError:除(或取模)零(所有数据类型 IndexError:序列中没有此索引(index) KeyError:映射中没有这个键 NameError:未声明、初始化对象(没有属性) SyntaxError:Python语法错误 ValueError:传入无效的参数''' #python的异常处理机制 #traceback模块:打印异常信息 import traceback try: print('--------') print(10/0) except: traceback.print_exc() #Pycharm的程序调试 #断点:程序运行到此处,暂时挂起,停止执行。此处可以详细观察程序的运行情况 #进入视图调试 单击工具栏上按钮 右键单击编辑区:点击debug模块名 快捷键shift+F9
Bug异常处理
最新推荐文章于 2024-04-16 10:54:00 发布