• 7 python异常机制


     1 1,异常机制
     2 例子;
     3      >>> while True:
     4    ...     try:
     5    ...         x = int(raw_input("Please enter a number: "))
     6    ...         break
     7    ...     except ValueError:
     8    ...         print "Oops! That was no valid number.  Try again..."
     9       ---以上是让用户从键盘输入一个数字,如果输入的是非数字,则会一直循环提示用户输入正确的值,直到输入正确
    10 
    11 2,except 子句:
    12      try:
    13          open("abc.txt")
    14      except FileNotFoundError:    --由于没有写异常变量,所以此except会接收所有系统抛出来的异常
    15            print "文件打开失败,文件未找到!!"
    16            pass
    17      
    18      系统抛出的异常有:
    19        IOError
    20        NameError
    21        FileNotFoundError
    22      
    23      抛出异常的机制:
    24        1,如果在运行时发生异常的话,解释器会查找相应的处理语句(称为handle)
    25        2,如果在当前函数里没找到,它会将异常传递给上层调用函数,看看上层调用函数能不能处理
    26        3,如果在最外层调用函数也没有能接收这个异常的话,解释器就会退出,同时打印出异常提示
    27 
    28 ## 例子:
    29 try:
    30     a=12/0
    31 except Exception as e:        ## Exception 可以接收任何异常
    32     print e
    33     print "有异常错误"
    34 
    35 print "end"
    36      
    37 3,finally子句
    38         即不管异常是会发生,
    39         finally子句中的代码都会执行,(保证一些善后工作,不会因为异常退出而不去处理)
    40         一般finally子句,文件关闭,释放锁,数据库连接返回给的连接池
    41      try:
    42         f= open("abc.txt")
    43      except FileNotFoundError:    
    44            print "文件打开失败,文件未找到!!"
    45      finally:
    46             f.close()
    47             print "OVER!!"
    48 
    49 4,raise 抛出异常
    50       
    51       raise  异常名 (异常信息)
    52     例:
    53    if a>5 :
    54       raise too_big ("太大了")  
    55 
    56     注意:
    57       抛出的异常名,必须是系统是定义好的,python中没有自定义的异常名
    58       只能自定义抛出。以上例子中的too_big就是提示未定义
    59 
    60     例如:
    61     try:
    62     if 1==1:
    63           raise NameError
    64     except NameError:
    65           print ("xxxxxxxxx")
  • 相关阅读:
    Linux免密登录
    HDFS shell 常用命令
    zabbix4.4图表中文显示乱码解决办法
    安装zabbix-agent
    安装配置zabbix4.4
    elasticsearch插件sql安装
    dedecms调用头部文件 dede:include时页面出现一行空白的解决方案
    DedeCMS <=5.7 SP2 file_class.php 任意文件上传漏洞
    DedeCMS后台文件任意上传漏洞media_add.php的修改方法
    织梦DEDECMS任意文件上传漏洞与注入漏洞修复方法
  • 原文地址:https://www.cnblogs.com/2mei/p/9254071.html
Copyright © 2020-2023  润新知