码迷,mamicode.com
首页 > 其他好文 > 详细

异常处理

时间:2017-09-13 15:14:25      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:报错   类型   处理异常   定义   ==   成功   pass   col   file   

异常处理

异常处理

异常处理的特点: 一旦发生异常,程序就不再执行 处理异常的时候 报错的在最下边

技术分享

 

技术分享

 

异常种类

语法异常 (在程序运行之前就存在) 逻辑异常 自己代码问题
ValueError NameError TypeError KeyError

放在try中的代如果遇到except中的代码错误类型 就会执行except中的代码
一旦发生异常 try中得 代码会停止执行

 if 预防异常  ======= try 处理异常

try:
    num=input(输入数字:)
    int(num)
    # a
    sum(1,2)
except ValueError:
    print(输入非数字)
except NameError:
    print(没有定义的变量)
except TypeError as error:
   print(数据类型有误 %s%error) 明确知道发生的异常时 ---用实际的异常 如 except ValueError 自己定义内容
不清楚错误的时候---用 except ValueError as e -----print(e) 打印错误信息

except Exception as e:
    print(e)
对于已经可以预料的 但是不能完全规避的 要处理的异常 应该要指定 处理方式
对于不能预料的异常 可以用万能异常

万能异常 放在最后

出现第一个异常(异常下的程序不会执行)的时候 一直往找处理 直到找到处理方式


                               =======    try  else  没有异常的时候    =======
try:
   a
   except NameError as e:
     print(e)
else:
     print(没有错的时候 执行!!)   # 当try语句没有异常的时候执行----与  for else  while else

 

基本格式

# try:
#     f=open(‘file‘)
#     int(f.read())
# except ValueError:
#     print(‘读文件失败‘)
# except Exception as e:
#     print(e)
# else:                 # try 里面的代码没触发异常的时候
#     print(‘成功‘)
# finally:
#     f.close()

 

                    =======   try  finally   ====== 清理 ----  把之前的文件 连接都关掉
 def func():     try:         a     except NameError as e:   # 有异常的时候才执行        print(e)         a=2         return a     finally:           # 任何情况下都会执行        print(‘执行‘)    # 当函数中有异常  意外退出的时候   始终会执行 finally   (即使里面有 return) print(func())

 

                      ======= raise 抛出异常   面向对象==========


                      ==========断言=====assert===============

                     assert 1==0      # AssertionError     # 直接退出程序   # 后便不再执行

 

例子 try except 应用

=========装饰器 ===============
# def wrapper(func): # def inner(*args,**kwargs): # try: # pass # return func(*args,**kwargs) # finally: # pass # return inner

 

异常处理

标签:报错   类型   处理异常   定义   ==   成功   pass   col   file   

原文地址:http://www.cnblogs.com/big-handsome-guy/p/7514602.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!