zoukankan      html  css  js  c++  java
  • 笔记||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

  • 相关阅读:
    PAT (Advanced Level) 1086. Tree Traversals Again (25)
    PAT (Advanced Level) 1085. Perfect Sequence (25)
    PAT (Advanced Level) 1084. Broken Keyboard (20)
    PAT (Advanced Level) 1083. List Grades (25)
    PAT (Advanced Level) 1082. Read Number in Chinese (25)
    HDU 4513 吉哥系列故事――完美队形II
    POJ Oulipo KMP 模板题
    POJ 3376 Finding Palindromes
    扩展KMP
    HDU 2289 Cup
  • 原文地址:https://www.cnblogs.com/peipei-Study/p/11951848.html
Copyright © 2011-2022 走看看