python try except有啥用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python try except有啥用?相关的知识,希望对你有一定的参考价值。

所有的错误类型都继承自BaseException.而且子类会被父类所覆盖.
那为什么还需要确定except的具体类型呢?直接BaseException不就好了嘛?
反正这个BaseException涵盖了所有错误类型

1.程序运行的时候,出现异常,并不一定需要中止程序,因为可能这个异常,可能这种异常时可处理的,或者是能预期到的异常,这个时候,我们需要知道到底是哪种异常,然后做相对于的后续处理。比如,QQ传输文件,万一网络不稳定,正在传输的文件失败了,这个时候,异常发生了,但不能说你QQ出问题了,需要重启吧,只需要捕获文件传输失败的异常就可以了,其他进程该干嘛干嘛。但有些时候,比如网络中断了,这个时候,捕获的异常就要中断,或者挂起绝大部分进程了,因为大部分进程断网后是无法继续的,这个时候,也是需要知道具体的异常是哪一类。
2. debug的时候需要具体的错误信息。追问

这两段代码的区别在于ZeroDivisionError和BaseException,但运行结果却是一致的为什么?

追答

你觉得呢?

参考技术A

一般情况确实都可以这样做,但是如果像这样呢:

list(m)[int(n)]

它可能出现的异常有IndexError(下标越界)和ValueError(强转失败)两种,那究竟是m的值不符合你的预期,还是n不符合?

在项目中,这两种异常,可能分别意味着两个不同地方的处理逻辑有异常,只有区分开,才能方便的进行异常处理或debug。

本回答被提问者和网友采纳

python with语句有啥用

参考技术A

如果不用with语句,代码如下:

file = open("/tmp/foo.txt")

data = file.read()

file.close()

这里有两个问题。一是可能忘记关闭文件句柄;二是文件读取数据发生异常,没有进行任何处理。下面是处理异常的加强版本:

file = open("/tmp/foo.txt")

try:

    data = file.read()

finally:

    file.close()

   


以上是关于python try except有啥用?的主要内容,如果未能解决你的问题,请参考以下文章

python中try。。。 except应该怎么用?与if。。。else有啥差别? print与return又有何差别?

python with语句有啥用

c# try-finally有啥用?

Java里面用try catch异常处理之后,catch之后的代码也会执行,那还要finally有啥用啊?

QRegExp::pos() 没有相应的 QRegExp::len() 有啥用?

python 和 ruby​​ - 有啥用呢? [关闭]