先引入一个网上找的表格
今天要说的是,好多人在开始学习编程的时候,都会遇到各种各样的报错,然而出现问题后第一反应就是,唉呀,我的代码错了,怎么办?去问问别人吧!这种想法是很可怕的,因为你逃避了问题,如果你仔细分析后再去请教,那么下次遇到类似问题,就知道怎么去处理了,这样才会有进步!
好了,回归主题
什么是异常?
通俗的说,异常就是错误,当我们写完代码,运行它的时候,如果python无法正常处理某一个或者一段代码的时候就终止运行并出现报错。
异常是一个对象(话说python中所有的东西都可以认为是对象。)
当然如果你的代码本身就是错的无法运行,那么也就别说出现什么异常了。。。
出现异常怎么处理
一般情况下,python会指明出现异常的种类和位置,我们只需要修正相应的地方就可以了!
比如这段代码:
a = 1if a print(a)
很明显的语法错误,那么我们只需要按照提示在a后面加上冒号就行了!
还有一种情况下,出现了我们无法判断的异常,比如做爬虫的时候,有时候抓不到内容,代码会返回空列表,然而我们依然取列表中的值就会报错: IndexError: list index out of range ,或者requests.get()获取网页内容的时候,也可能会出现返回403的情况,这类异常,我们可以用try/except语句来处理!
语法:
以下为简单的 try....except...else 的语法:
try: #运行代码except : #如果在try部分引发了异常except ,: #如果引发了异常,获得附加的数据else: #如果没有异常发生
try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。
如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。
如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。
使用except而不带任何异常类型
你可以不带任何异常类型使用except,如下实例:
try: 正常的操作 ......................except: 发生异常,执行这块代码 ......................else: 如果没有异常执行这块代码
使用except而带多种异常类型
你也可以使用相同的except语句来处理多个异常信息,如下所示:
try: 正常的操作 ......................except(Exception1[, Exception2[,...ExceptionN]]]): 发生以上多个异常中的一个,执行这块代码 ......................else: 如果没有异常执行这块代码
以上摘抄了一段内容(小编很懒的),所有的教程都会有相关的内容,大家看看就好
这里要说的是,大家尽量不要使用try-except来捕获所有的异常,因为这往往代表着我们不能通过异常去判断哪里出现了问题,因为你的代码跳过了所有可能。
其实,写代码本身就是一个细活,不能随心所欲的写,它有本身的规则的,我们在遇到问题的时候,一定要去想办法找到问题,并解决它,这样才会有进步!
领取专属 10元无门槛券
私享最新 技术干货