• 笔记||Python3之异常处理


    异常概念:1 - 代码执行产生错误,无法继续

                  2 - 在异常前面代码是可以执行的  ---python是解释型的

                  3 - 异常作用  --- 程序不要退出 - 可以继续执行 同时给予程序员一定的异常提示信息

                  python有两种错误很容易辨认:语法错误和异常

                  语法错误:while True:

                                     print('hello  world!')

                  异常:print(10+(1/0))    #  ZeroDivisionError:disvision  by  zero  除数不能为0

    异常的种类:try语句  -- 首先执行try子句(在关键字try和关键字except之间的语句),如果没有异常发生,忽略except的子句,try子句执行后结束。

                                    如果在执行try子句的过程中发生了异常,那try子句余下的部分将被忽略。

                                    如果异常的类型和except之后的名称相符,那么对应的except子句将被执行。

                                    如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。

           1 - NameError.name 'name'  is  not  defined   #  ‘name’没有被定义

           2 - ZeroDivisionError:disvision  by  zero   #  除数不能为0

           3 - FileNotFoundError:[Errno 2] No such file or diretory:'t:/'     # 找不到相应的文件或目录

           4 - IndexError:list index out of range     # 下标越界异常

    异常的捕获+处理:  

           1 - 捕获预知异常

                try:

                 except  异常类型:

                       处理内容

           

           2 - 多个预知异常:执行其中一个  ---  异常按照顺序抛出

                except  ZeroDivisionError:

                       print('您输入的值不能为0!')

                except  ValueError:

                       print('输入的值的类型不对!')

            

           3 - 捕获异常的具体信息   except  ZeroDivisionError  as  e:

           4 - 有时候我们并不知道会抛出什么异常  ---- 未知异常

                  ①except  Exception  as e :   ----   捕获异常父类

                  ②简写  except:

                  ③捕获未知异常的具体信息:   tracback.format_exc()

           5 - 不管是否有异常,我们都要执行一段代码      finally:

           6 - else:  没有异常的情况下,要执行一段代码

            

           7 - 函数调用栈:① 解释器中断当前代码的执行,并抛出一个异常对象

                                      ② 并在函数的调用栈从下到上,层层的寻找捕获处理该异常的代码

                                      ③ 如果能找到就执行对应的代码

                                      ④ 如果不能则会一直找到最外层的函数,结束本次执行

            

            

           8 - 自定义异常  -----  类

                        继承自Exception

                        class NameTooLongError(Exception):

                                    pass

  • 相关阅读:
    UVa10340.All in All
    UVa1368.DNA Consensus String
    《Algorithms 4th Edition》读书笔记——3.1 符号表(Elementary Symbol Tables)-Ⅲ
    UVa232.Crossword Answers
    Uva272.TEX Quotes
    《Algorithms 4th Edition》读书笔记——3.1 符号表(Elementary Symbol Tables)-Ⅱ
    算法面试(3)
    算法面试(2)
    算法面试(1)
    hdu 4896 Minimal Spanning Tree
  • 原文地址:https://www.cnblogs.com/peipei-Study/p/11951848.html
Copyright © 2020-2023  润新知