#Author:'haijing'#date:2018/10/27

# try:#     #代码块 逻辑#     pass# except Exception as e:#     #上述代码块如果出错,自动执行当前快的内容#     pass## while 1:#     try:#         inp = input('请输入序号:')#         i = int(inp)#     except Exception as e:  #一旦出错会将错误信息创建一个类Exception,对象名字叫e,即e就是类Exception的对象#         print(e)  #输出错误信息#         i = 1#     print(i)#如果输入数字,那么正确的执行try中的内容,如果输入的是字母,那么去执行except中的代码

li = [1,2.3]li[999]  #错误类型:IndexError  如果把Exception换成IndexError,那么就不会去识别别的错误信息int('qwer')  #错误类型:ValueError 如果把Exception换成ValueError,那么就不会去识别别的错误信息,直接出现错误页面

#Exception可以捕获所有错误#IndexError和ValueError只能捕获各自的错误#IndexError和ValueError只是Exception的一个子类#还有很多子类

#一般情况下,先让子类上,最后老大再上try:    passexcept ValueError as e:    print('ValueError',e)except IndexError as e:    print('IndexError',e)except Exception as e:   #以上小弟解决不了了,那么老大再去上    print('Exception',e)else:    print('else')  finally:    print('finally')#如果try中的内容出错,那么就会去执行exception中的内容;# 如果try中的内容不出错,那么就会去执行else中的内容 (try中正确的内容也会执行的)#不管try中出不出错,都会去执行finally中的内容
#--------------主动触发异常 raise方法----------------#  ******# try:#     raise Exception('不过了...')  #主动去触发异常# except Exception as e:#     print(e)  #这样try中的内容和except中的内容都会去执行  *****

#--------------主动触发异常的应用----------------## def db():#     # return True  #表示执行成功#     return False #表示执行失败# def index():#     try:#         result = db()#         if not result:  #表示db()没有执行成功#             raise Exception('数据库处理错误')  #主动去触发异常,将错误信息保存到Exception类中去,对象名字为e#     except Exception as e:#         str_error = str(e)  #拿到错误信息:数据库处理错误,并将错误信息转换为字符串#         print(str_error)  #这里可以将str_error写入到日志中## index()

#--------------自定义异常,用到了__str__()方法----------------##以前class oldbayError(Exception):    def __init__(self,msg):        self.message = msg    def __str__(self):        return self.messageobj = oldbayError('xxx')print(obj)  #打印xxx

#现在class oldbayError(Exception):    def __init__(self,msg):        self.message = msg    def __str__(self):        return self.messagetry:    raise oldbayError('我错了...')  #相当于创建对象e = oldbayError('xxx')except Exception as e:    print(e)  #执行e对象的__str__()方法,获取返回值之后再打印  (print()方法的执行步骤)

#--------------断言assert方法----------------## assert+条件 如果条件成立那么执行下一句,如果条件不成立,那么程序会报错,终止执行代码print(23)assert 1==2  #程序会终止在这里 强制用户服从print(456)

haijng in HZ 你在远方的山上 春分十里2018.10.28 中
 

转载于:https://www.cnblogs.com/YiYA-blog/p/9863785.html

python_day25__02__异常处理__try---exception—else---finally相关推荐

  1. C#基础知识梳理系列十:异常处理 System.Exception

    C#基础知识梳理系列十:异常处理 System.Exception 参考文章: (1)C#基础知识梳理系列十:异常处理 System.Exception (2)https://www.cnblogs. ...

  2. JavaSE学习总结(八)—— 异常处理(Exception)

    JavaSE学习总结(八)-- 异常处理(Exception) 参考文章: (1)JavaSE学习总结(八)-- 异常处理(Exception) (2)https://www.cnblogs.com/ ...

  3. PL/SQL编程基础(五):异常处理(EXCEPTION)

    PL/SQL编程基础(五):异常处理(EXCEPTION) 参考文章: (1)PL/SQL编程基础(五):异常处理(EXCEPTION) (2)https://www.cnblogs.com/thes ...

  4. windows核心编程学习笔记(八)结构化异常处理(Structured Exception Handling)

    首先要要知道,结构化异常处理(SEH)和C++提供的异常处理不相同. 一.Termination HandlersTermination Handlers使用很简单.在想使用SEH处理的地方使用 __ ...

  5. 【转】PHP的异常处理类Exception的使用及说明

    1.首先php5提供了基本的异常处理类,可直接使用 <?php class Exception {protected $message = 'Unknown exception'; // 异常信 ...

  6. 16.异常处理机制:exception

    python常见异常总结:http://bbs.fishc.com/forum.php?mod=viewthread&tid=45814&extra=page%3D1%26filter ...

  7. oracle如何获取异常,ORACLE-函数异常处理(EXCEPTION)

    当存储过程引发异常时,可以使用以下代码获取异常并将异常更新到特定字段,这在检查数据时方便检查数据抛出异常. WHEN OTHERS THEN --ROLLBACK; --获取异常信息 V_ERRCOD ...

  8. Java基础学习总结(86)——Java异常处理机制Exception抛出异常时throw和throws用法详解

    什么时运行时异常?什么是非运行时异常? 通俗的讲: 运行时异常:就是编译通过,运行时就崩了,比如数组越界. 非运行时异常:就是编译不通过,这时就得必须去处理了.不然就没法运行了. 全面的讲: Thro ...

  9. 异常和异常处理(windows平台)

    [翻译]异常和异常处理(windows平台) 翻译的不好,莫怪. 原文地址: http://crashrpt.sourceforge.net/docs/html/exception_handling. ...

最新文章

  1. VS2013+OpenCV3.1.0配置方法
  2. CV-机器视觉、图像处理方面的书籍
  3. 腾讯首次公布微信最全用户数据【完整版】
  4. stanford python中文分词
  5. python notebooks_Jupyter Notebooks安装及入门
  6. Wordpress表结构详细说明
  7. JavaScriptCore.framework基本用法(一)
  8. Arduino资源下载
  9. 力扣14最长公共子串
  10. 【抓包】Xposed+JustTrustMe关闭SSL证书验证
  11. 2022淘宝双十一优惠券如何叠加使用?淘宝双十一优惠券叠加规则介绍
  12. local class incompatible: stream classdesc serialVersionUID = -6230081990944906418, local class seri
  13. sourceinsight界面中的英文解释
  14. 糖友控糖是在控什么糖呢
  15. This beta version of Typora is expired, please download and install a newer version
  16. CSDN-JayChou测试
  17. (已解决)win10重装后无法开启双显示屏
  18. API管理平台,管理企业所有API资产
  19. 如何获取网站的HTTPS证书?
  20. Java编程思想随笔

热门文章

  1. npm安装任何包都报错的解决办法
  2. Spring boot 通过ApplicationRunner在启动完成后按指定顺序执行任务
  3. WIN 10进入休眠、睡眠、关机的命令
  4. mysql 读取oracle_RobotFramework读取mysql和oracle数据库
  5. 吃是为了肉体,喝是为了灵魂
  6. hdu4405 掷骰子走格子
  7. MongoDB的C#驱动基本使用
  8. 性能监控工具yourkit的安装及eclipse、tomcat的集成
  9. 关于“100g文件全是数组,取最大的100个数”解决方法汇总
  10. RTOS原理与实现13(完):内核裁剪与移植