当前位置:首页 » 编程语言 » python捕获异常

python捕获异常

发布时间: 2022-02-18 07:09:15

1. python 如何获取异常的名字

printe.__class__

2. Python with as为什么无法捕获异常

with在打开文件的这个操作中的作用是保证每次正常打开文件后,不论遇到什么,最后都会执行文件的关闭操作,避免脚本中遗漏。但是他自身并没有抓取异常的处理机制。

with open("asdasdas") as a:

print("打开成功")

do_something()

这段代码的含义,相当于打开了文件“asdasdas”后打印了“打开成功”的字样后,又处理了do_something()这段逻辑。不论do_something()这段逻辑正常执行结束,还是抛出异常,都会保证最终“asdasdas”这个文件都会被关闭。避免因为文件未被关闭而导致的种种问题。


你的代码可以改为以下部分,这样就可以catch到读取文件中的异常了。

try:

with open("asdasdas") as a:

print("打开成功")

except:

print("打开失败")

3. 一个简单的Python程序,关于异常捕捉。

这个还没进入你函数,就已经异常了

4. 怎样在python中捕获线程抛出的异常

python的线程中的异常,通常不会给你显示出错的语句。你可以将thread函数,或者是Thread的run里的内容用整个儿的try catch包裹起来。搜索

然后这样
import traceback,sys
try:
threadfun1()
except:
traceback.print_exc(file=sys.stdout)

这样出错的时候就能定位到是哪一行代码了。

因为线程经常出现这种无显示错误位置的情形。后来都形成了习惯,要不把线程放在try catch里。要不就仔细检查线程函数,确保它没有错误,再放出去运行。

另外你还可以将线程函数的功能放在主进程里,单线程运行。这样错误位置就曝露出来了。

仅仅从你这个提示来看是无法定位错误的位置与类型的。

5. Python 网页打开异常捕获

可以直接就写个except,捕获所有异常,也可以自己指定异常哇,比如常见的Timeout、IOError、HTTPError等等

6. Python 为什么不能捕获如下的除零异常

把try expect放在exe()函数里面
如果在程序出错的时候捕捉到这个错误,被用自己的方式来处理它,或者不想让使用程序的用户了解程序出错的详细信息,这个时候我们就需要捕捉异常,可以使用 try和except 语言。
>>> a = 10
>>> b = 0
>>> print a / b
>>>
这样,程序运行之后会产生异常错误,信息如下:
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <mole>
print a /b
ZeroDivisionError: integer division or molo by zero
如何处理上面的除零错误,并且返回自己想要的内容,请看下面的代码:
try:
a = 10
b = 0
print a / b
except ZeroDivisionError:
pirnt “除零错误,已经捕获!”
如果需要同时捕捉多个可能的异常错误,可以把异常的类型,放入一个元组中,举例说明:
except (ZeroDivisionError, TypeError, NameError)

7. python异常值处理

如果你用 Python 编程,那么你就无法避开异常,因为异常在这门语言里无处不在。打个比方,当你在脚本执行时按 ctrl+c 退出,解释器就会产生一个 KeyboardInterrupt 异常。而 KeyError、ValueError、TypeError 等更是日常编程里随处可见的老朋友。

异常处理工作由“捕获”和“抛出”两部分组成。“捕获”指的是使用 try ... except 包裹特定语句,妥当的完成错误流程处理。而恰当的使用 raise 主动“抛出”异常,更是优雅代码里必不可少的组成部分。

异常分类

BaseException所有异常的基类
Exception常见错误的基类
ArithmeticError所有数值计算错误的基类
Warning警告的基类

AssertError断言语句(assert)失败
AttributeError尝试访问未知的对象属性
DeprecattionWarning关于被弃用的特征的警告
EOFError用户输入文件末尾标志EOF(Ctrl+d)
FloattingPointError浮点计算错误
FutureWarning关于构造将来语义会有改变的警告
GeneratorExitgenerator.close()方法被调用的时候
ImportError导入模块失败的时候
IndexError索引超出序列的范围
KeyError字典中查找一个不存在的关键字
KeyboardInterrupt用户输入中断键(Ctrl+c)
MemoryError内存溢出(可通过删除对象释放内存)
NamerError尝试访问一个不存在的变量
NotImplementedError尚未实现的方法
OSError操作系统产生的异常(例如打开一个不存在的文件)
OverflowError数值运算超出最大限制
OverflowWarning旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning关于特征会被遗弃的警告
ReferenceError弱引用(weakreference)试图访问一个已经被垃圾回收机制回收了的对象
RuntimeError一般的运行时错误
RuntimeWarning可疑的运行行为(runtimebehavior)的警告
StopIteration迭代器没有更多的值
SyntaxErrorPython的语法错误
SyntaxWarning可疑的语法的警告
IndentationError缩进错误
TabErrorTab和空格混合使用
SystemErrorPython编译器系统错误
SystemExitPython编译器进程被关闭
TypeError不同类型间的无效操作
UnboundLocalError访问一个未初始化的本地变量(NameError的子类)
UnicodeErrorUnicode相关的错误(ValueError的子类)
UnicodeEncodeErrorUnicode编码时的错误(UnicodeError的子类)
UnicodeDecodeErrorUnicode解码时的错误(UnicodeError的子类)
UserWarning用户代码生成的警告
ValueError传入无效的参数
ZeroDivisionError除数为零

8. python如何捕获错误信息

首先我们声明一个字符串,然后构建下表获取字符串中的字符,
然后我们经常会用一个越界的下表进行访问,就会报如下的错误:
相关推荐:《Python教程》
如果我们想捕获这个错误,并且加入我们自己的提示信息的话,可以用try与catch进行,
另外except中也可以精确的指定某一个异常类型,如下图所示,指定了除数为0的异常。
如果想输出异常提示信息的话,直接在except里进行输出即可,
最后提醒一下的是,try与except语句中也可以运用else语句的,
综上所述,python中进行异常的捕获运用try与except语句即可,异常信息的显示也可以自己进行定制。

9. python怎么捕获2次异常

try:
something

except:
try:

something

except:

something

10. Python为什么捕获不到异常,程序总是自动终止

timeout 是run time error,你试试用Error,是可以捕获的。

热点内容
php翻转字符串 发布:2025-01-05 11:30:20 浏览:334
公开密钥加密系统 发布:2025-01-05 11:25:35 浏览:56
安装mysqlpython 发布:2025-01-05 11:17:02 浏览:742
tar备份linux 发布:2025-01-05 11:13:37 浏览:727
大型pppoe服务器搭建 发布:2025-01-05 11:12:59 浏览:843
怎么修改360wifi密码 发布:2025-01-05 11:12:51 浏览:61
php文件数据库 发布:2025-01-05 11:06:18 浏览:768
usb串口编程 发布:2025-01-05 11:05:42 浏览:334
公积金新密码如何设置 发布:2025-01-05 11:03:16 浏览:15
火影脚本不越狱 发布:2025-01-05 11:01:10 浏览:242