Python用试语句捕获异常的实例方法

  

<强> python的异常,以及用试复合语句处理异常。

  

运行代码时有时会出现各种各样的错误,致使解析器中断执行,并提示xxxxxxErorr的提示,后面跟具体的错误的描述,这被称为是引发了异常。

  

其实异常告诉我们的是遇到了什么类型的错误.xxxxErorr就是python内置的异常类型。每一种异常类型,都有它自己的错误信息。

  

癙ython用语句捕获异常的实例方法"

  

有一种比较容易辨识,容易处理的错误,语法错误:SyntaxError

  

是由于写代码时的语法错误,大部分的解析器都会提前提示,像pycharm,在书写时如果语法错误,都会有波浪线提示。语法上的错误很好处理,类似与写文章写错字了,改正就行了。

  

癙ython用语句捕获异常的实例方法"

  

如何处理异常:

  

除了语法错误能轻松搞的定,其他有些异常类型不影响代码的功能,而又不想让异常中断执行时,就要对异常进行处理,而不让他中断程序:

  

例如:有一个字典personDetail={" name ": "光头强”}里边是光头强的资料,想取到它的资料,但具体都有什么资料我们不知道,如果输入的键不存在就会引发异常而中断执行。致使后面的代码也为无法执行。

  

癙ython用语句捕获异常的实例方法"

  

那么就要捕获这些异常,绕过它,能让下面的代码继续运行.python提供了试语句来实现这些功能。
  

  

语法:
  

  
  

试题:
  可能发生异常的代码
  除了异常类型:
  捕获的异常后要执行的代码

     

try 语句的工作原理如下。

  

1)执行,试子句时如果没有异常发生,则跳过,除了子句并完成,try 语句的执行。

  

2)如果在执行试子句时发生了异常,则跳至除子句。

  

3)执行除了子句,如果引发异常的类型和,except 关键字后面的异常匹配,就是捕获了异常,执行除了子句。

  

例如:         gtqDict={" Name”:“光头强”,“年龄”:34岁的“性别”:“男”   试一试:   print (gtqDict[“重量”])   除了KeyError:   打印(“重量不存在,继续走”   print (gtqDict["年龄"])   print (gtqDict["性别"])      

,

  

例子不管重量是否存在,都能使得程序完。

  

癙ython用语句捕获异常的实例方法"

  

<>强捕获多个异常:

  

有时不确定会发生哪种异常,就把异常类型以元组的形式组包统统放在除了后面,来匹配可能发生的异常:

  

比如:要打印光头强年龄的年龄键,不确定这个键是否存在,就用KeyErorr,不确定会不会发生键名是否正确,就用NameErorr。

  

例如:         gtqDict={" Name”:“光头强”,“年龄”:34岁的“性别”:“男”   试一试:   print (gtqDict["年龄"])   除了(KeyError KeyError):   print(“年龄错误”   打印(gtqDict[“名称”)   print (gtqDict["性别"])      

,

  

癙ython用语句捕获异常的实例方法"

  

捕获异常的描述信息:可以将异常的具体描述打印出来,以供参考。

  

试题:可能发生异常的代码

  

除了(KeyError KeyError)信息变量:
  

  

打印(信息变量)

  

例如:         gtqDict={" Name”:“光头强”,“年龄”:34岁的“性别”:“男”}   试一试:   print (gtqDict[“重量”])   除了(KeyError KeyError) e:   打印(类型(e), e)   打印(gtqDict[“名称”)   print (gtqDict["性别"])      之前      

  

癙ython用语句捕获异常的实例方法"

  

<>强捕获所有异常:
  

  

前面提过,引发异常的xxxxErorr都是python异常的类型.python中所有异常类型都是基类异常的派生类。

  

那么在写代码的时候不用指定异常的具体类型,只要捕获基类就等于捕获了所有的异常,但输出的是具体的异常信息,这很有利于在大范围内找到具体的错误。

Python用试语句捕获异常的实例方法