• python之异常


     1 '''
     2  异常的概念 :代码产生错误,无法继续执行
     3  异常的产生
     4  异常的捕获与处理
     5  函数调用栈
     6  自定义异常
     7 '''
     8 #导入模块,可以打印出报错的详细信息
     9 # import traceback
    10 #
    11 # # 异常的产生, 解决方法:1.if 过滤(这个方法适合提前已知可能出现的bug)
    12 # # 2.事后处理 :可以处理未知的异常  try: except:
    13 # while True:
    14 #     num = input('input a num:')
    15 #     try:
    16 #         print('100 / %s = %s' % (num,100.0/int(num)))
    17 #     # except ZeroDivisionError:#捕获处理这种异常
    18 #     #     print('处理方案,除数不能为0')
    19 #     #     #打印出具体异常是什么,用as + 变量 ,然后打印出变量
    20 #     # except ValueError as error:  # 捕获处理这种异常
    21 #     #     print('处理方案,除数不能为非数字字符',error)
    22 #         #获取所有异常
    23 #     # except Exception:
    24 #     #     print('有异常,但不清楚是什么异常')
    25 #     #简写 捕获所有异常
    26 #     except:
    27 #         print('缩写,但不清楚是什么异常')
    28 #         print('缩写',traceback.format_exc()) #打印出报错的详细信息 ,展示报错的行号
    29 
    30 
    31 # 函数调用栈 ,异常是从下一层层往上抛的 ,f3报错,一层层都会报错,所以下面总共有4个错误
    32 #自己写的代码的话,一般在最下面的那行报错就是报错的原因
    33 #如果调用第三方库报错,最下面的那行报错一般不知道是什么错误,一般就看在哪里调用的第三方库的方法
    34 #这种多层报错的,一般都是哪边方便加就到哪边加异常处理
    35 # def f3():
    36 #     print("in - f3,start")
    37 #     b = 4/0 #这里会报错
    38 #     print("in - f3,end")
    39 # def f2():
    40 #     print("in - f3,start")
    41 #     f3()
    42 #     print("in - f3,end")
    43 #
    44 # def f1():
    45 #     print("in - f3,start")
    46 #     f2()
    47 #     print("in - f3,end")
    48 # f1()
    49 
    50 #自定义异常
    51 # #异常是个类,自定义的异常需要先抛出再进行捕获 ,抛出是raise
    52 # class nameTooLongError(Exception):#要继承Exception这个类
    53 #     err = 'name.long'
    54 #     print('nameTooLongError')
    55 #     def methFun(self):
    56 #         pass
    57 # #自定义异常类 -过短异常,继承
    58 # class nameTooshortError(Exception):
    59 #     print('nameTooshortError')
    60 #
    61 # def inputName():
    62 #     name = input('请输入名字:')
    63 #     if len(name) > 10:
    64 #         raise nameTooLongError #自定义的异常要自行抛出
    65 #     elif len(name) < 10:
    66 #         raise nameTooshortError
    67 # try:
    68 #     inputName()
    69 # except nameTooshortError:
    70 #     print("您的名字过短")
    71 # except nameTooLongError:
    72 #     print("您的名字过长")
    73 
    74 #断言
    75 tel = input('请输入手机号:')
    76 assert len(tel) == 11,'手机号位数错误'
    77 print('位数正确')
  • 相关阅读:
    【整理】Web页面防止重复提交
    C#域验证的代码
    【整理】delegate+RemotingServices 委托+远程调用的一个实例
    【转载】框架里跨域Session丢失问题
    转贴:谈谈多线程的思维方式
    list,vector,deque有什么区别
    转贴:.NET多线程编程(3):线程同步
    转贴:.NET多线程编程(1):多任务和多线程
    转贴:.NET多线程编程(2):System.Threading.Thread类
    转贴:.NET多线程编程(4):线程池和异步编程
  • 原文地址:https://www.cnblogs.com/zhaobobo001/p/14418014.html
Copyright © 2020-2023  润新知