异常处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常处理相关的知识,希望对你有一定的参考价值。
异常处理
异常处理
异常处理的特点: 一旦发生异常,程序就不再执行
处理异常的时候 报错的在最下边
异常种类
语法异常 (在程序运行之前就存在)
逻辑异常 自己代码问题
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
以上是关于异常处理的主要内容,如果未能解决你的问题,请参考以下文章
java.util.MissingResourceException: Can't find bundle for base name init, locale zh_CN问题的处理(代码片段