前言:
目前看官们对“pythonexceptraise”大致比较珍视,同学们都需要学习一些“pythonexceptraise”的相关内容。那么小编也在网络上网罗了一些关于“pythonexceptraise””的相关文章,希望看官们能喜欢,姐妹们快快来学习一下吧!在刚学习Python,经常会遇到各种各样的错误,在这里介绍一下对错误的捕获以及对错误的异常处理,python中错误大致可以分为两种:语法错误和异常。下面详细讲一下。
语法错误
Python 的语法错误或者称之为解析错误,刚学编程的时候经常会遇到这种问题,下面举个例子来说明一下语法错误:
上面代码在在定义函数的时候少了一个冒号(:)。语法分析器指出了出错的一行,并且在最先找到的错误的位置标记了一个小小的箭头,执行到语法错误这一行后,程序就会终止运行,对于这种错误只能是自己查看IDE指出的错误信息,仔细检查来看看到底哪里的语法写错了,找到之后修改为正确的就行了。
异常
异常就是Python程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误就是异常了。异常一般不会被程序处理,跟上面的语法错误一样IDE都会输出错误信息,并终止程序的执行,例如:
上面代码中,我用一除以零,零不能作为除数,学过小学数学的都知道,但是这句语法是正确的。IDE并不会在线面画上红色波浪线来提示你有错误,只有在执行它的时候会打印错错误信息:除数为0(ZeroDivisionError: division by zero),这就是异常。
异常处理
遇到上面的异常,我们可以用代码捕获异常并进行相应的处理,捕获异常一般用try……except……语句。例如:
. 上面代码把我们认为可能会有异常的代码写在try下面。Except下面是如果遇到了异常,就会执行except下面的代码,来对异常进行处理。来保证代码的正常运行。
所有异常都可以单单用一个Except来捕获,但是这样程序并不能指出程序的错误信息,这时候我们可以在except后面指定要捕获异常类型,来获取具体的异常信息。比如,要捕获除数不能为0的异常可以在后面加上ZeroDivisionError。
指定捕获的异常后,我们就可以得到具体的错误信息了。但是如果我们指定的异常类型,与实际异常不符合的话,程序也是不会执行except下面的代码的,并且会终止程序执行,例如:
对于这种情况,我们可以在except后面指定多个要捕获的异常类型,例如:
手动抛出一个异常
Python 使用 raise 语句抛出一个指定的异常。例如:
个人觉得raise 语句没多大用处,也有可能是我刚学,还没能体会到它的用处。
Try…except…else
在后面加一个else语句的话,如果没有捕捉异常就会执行else里面的代码,如果捕捉到了则不会执行。例如:
没捕捉到的
捕捉到错误的
Try…except…finally
如果在后面加的finally 语句的话,不管有不有异常都会执行finally 里的代码,例如:
没捕获异常
捕获到异常
标签: #pythonexceptraise