当前位置:
首页 > Python基础教程 >
-
python中的异常处理
*这个世界本就不完美......
**就像我们都会在最美好的年华遇到最糟糕的爱情一样
***python程序中不可避免会遇到异常情况
****这时就需要异常处理机制
Solution1
try-except[as reason]一旦在某处出错了,之后的程序代码不会被执行了,可以添加else
>>> try:
... num = input(int(input('please input an integer:')))
... except ValueError as reason:#这里的reason实际上就是内置的reason
... print(str(reason))#这里可以添加自己其他的说明
... else:#如果前面遇到exception的话这里就不执行了
... print('no any exception!')
...
please input an integer:q
invalid literal for int() with base 10: 'q'
Solution2
try-except-finally,finally后面的代码一定会被执行执行的;某处出现了异常,finally下面的代码依旧会继续执行
>>> try:
... num = input(int(input('please input an integer:')))
... except ValueError as reason:
... print(str(reason))
... finally:
... print('this clause must be excuted!')
...
please input an integer:1
1
this clause must be excuted!
Solution3
raise抛出异常,可以自定义一个异常,但是必须是已经存在的异常类型,只能修改提示的信息
>>> name = 'andox'
>>> if name == 'andy':
... print('this is a good name!')
... else:
... raise NameError('Ooops,bad name!')
...
Traceback (most recent call last):#沿调用关系回溯
File "<stdin>", line 4, in <module>#描述具体出问题的位置
NameError: Ooops,bad name!
Solution4
try-except语句将捕获所有异常,因为不能具体识别异常,因此此方法不被推荐!
Appendix:Built-in Exceptions
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StopAsyncIteration
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- AssertionError
+-- AttributeError
+-- BufferError
+-- EOFError
+-- ImportError
| +-- ModuleNotFoundError
+-- LookupError
| +-- IndexError
| +-- KeyError
+-- MemoryError
+-- NameError
| +-- UnboundLocalError
+-- OSError
| +-- BlockingIOError
| +-- ChildProcessError
| +-- ConnectionError
| | +-- BrokenPipeError
| | +-- ConnectionAbortedError
| | +-- ConnectionRefusedError
| | +-- ConnectionResetError
| +-- FileExistsError
| +-- FileNotFoundError
| +-- InterruptedError
| +-- IsADirectoryError
| +-- NotADirectoryError
| +-- PermissionError
| +-- ProcessLookupError
| +-- TimeoutError
+-- ReferenceError
+-- RuntimeError
| +-- NotImplementedError
| +-- RecursionError
+-- SyntaxError
| +-- IndentationError
| +-- TabError
+-- SystemError
+-- TypeError
+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
+-- ResourceWarning
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式