异常处理(代码片段)

江湖乄夜雨 江湖乄夜雨     2022-11-10     388

关键词:

1、什么是异常

  所谓程序中的异常,就是错误发生的信号,也就是说当程序出错并且程序没有处理这个错误,则会抛出一个异常,并且程序会随着这个异常终止。

2、程序中错误的分类:

(1)语法错误:

  语法错误,就是程序执行前必须要避免的,比如if语句后面没有冒号、关键字拼写错误等等,这样的错误一目了然,很好避免。

(2)逻辑错误:

  逻辑错误是程序运行过程中发生的“不符合编程逻辑”的错误,具体又可以细分为如下几个:

<1>ValueError:

<2>NameError:

<3>IndexError:

<4>KeyError:

<5>AttributeError:

<6>ZeroDivisionError:

<7>TypeError:

3、异常处理的两大分类

(1)对于可以预知的错误的发生,我们应当用if条件去判断

(2)对于不可预知的错误,我们只知道可能发生错误的代码块,此时应当利用异常处理机制try...except 去处理

4、try...except详解:

(1)多分支情况:

  所谓的多分支,就是说被监测的代码抛出的异常有多种可能性,并且我们需要针对每一种异常类型都专门定制处理的逻辑。

  如上面的代码:当程序运行到 name 的时候,发现有NameError错误,于是程序自动跳到 except NameError as n:这里,并执行这里的代码。注意此时仅仅是对异常的情况进行处理,并没有终结程序,这我们可以从程序中打印出了"HelloWorld"可以验证。

   我们可以把name注释掉,此时程序没有了NameError错误,而会发现下一个IndexError错误:

  而程序也并没有终结,照样打印出来了HelloWorld。

(2)万能异常——ExcePtion

  对于多分支情况,我们必须得知道具体异常的类型,才能“对症下药”的为每种异常进行相应的处理,而当我们不确定会发生什么异常的时候,可以用万能异常解决:

<1>

<2>

(3)try..except 与finally相结合

  我们知道,当我们利用try...except语句去处理异常的时候,程序会在发生异常的地方“终结代码块”,但是我们考虑一种情况:当我们打开一个文件去处理时,在文件关闭之前发生了异常,程序跳出后我们无法关闭程序,这样会造成内存资源的浪费。针对这样的“回收资源”的应用,我们可以在整个异常处理的代码块加上finally语句,不论是否抛出异常,finally里面的代码必定会执行。说到这里大家肯定知道了,我们将文件关闭的代码写到finally下面就好了。

try:
    f = open(\'whw.txt\',\'r\')
    print(next(f))
    print(next(f))
    print(next(f))
    print(next(f))
    #不知道文件中有多少行,不断去next()
finally:
    f.close()
    #不论是否出错,文件必然会关闭

5、主动触发异常  raise

  有时候我们需要严格限制程序的某些特性,这时候可以用raise主动去抛出异常,例如,当我们利用自定义元类控制类的创建时,规定类名必须大写,可以这样做:

  这样就利用主动触发异常实现类名的限定

6、自定义异常类型

  顾名思义,我们需要自定义一个类来实现异常的处理:

class MY(BaseException):
    def __init__(self,msg):
        super().__init__()
        self.msg = msg

    def __str__(self):
        return f"self.msg"

try:
    print(555555)
    raise MY("666")
except MY as e:  # 自定义异常需要自己捕获!!!
    print(e)
    import traceback
    print(traceback.format_exc())
except Exception as e:
    print(e)
# else:
#     print("------------")

 

异常以及异常处理(代码片段)

一、异常程序执行过程中出现的非正常流程现象二、异常处理的格式1.异常处理格式一"""最简单语法格式1try:____可能引发异常现象的代码except:____出现异常现象的处理代码"""print("程序开始")try:#i=5print(i)#此时i没有定义except:print("前... 查看详情

二十异常处理(代码片段)

异常处理回到顶部什么是异常?异常发生之后异常之后的代码就不执行了回到顶部什么是异常处理python解释器检测到错误,触发异常(也允许程序员自己触发异常)程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程... 查看详情

异常处理(代码片段)

packagecn.kecheng;importjava.util.Scanner;/**异常:异常是指在程序的运行过程中所发生的不正常的情况,它会中断正在运行的程序异常处理机制:java中通过异常处理机制为程序提供异常处理的能力,保持程序继续运行而不中断!异常处理:... 查看详情

php异常处理(代码片段)

什么是异常?PHP5提供了一种新的面向对象的错误处理方法。异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。当异常被触发时,通常会发生:当前代码状态被保存代码执行被切换到预定... 查看详情

异常处理,约束,md5加密,日志处理(代码片段)

1,异常处理一般的异常处理说的是抛异常和处理异常异常处理从产生异常开始语法:抛异常:产生异常raiseException("")处理异常语法:处理异常try:操作exceptExceptionase:异常父类,可以捕获所有异常else:保护不抛出异常的代码,当try中... 查看详情

异常处理(代码片段)

异常处理一、什么是异常处理异常是错误发生的信号,一旦程序出错就会产生一个异常,如果该异常没有被应用程序处理,那么该异常就会抛出来,程序的执行也随之终止二、异常的内容(1)traceback异常的追踪信息(2)异常的类型(... 查看详情

异常处理(代码片段)

异常,不可避免执行中发生的不正常情况(开发中语法和逻辑错误不算)Throwable类,异常根父类PublicStringgetMessage()//打印错误信息publicvoidprintStackTrace()//打印异常抛出轨迹机制,异常向上抛出,等待处理java健壮性,鲁棒性异常处... 查看详情

exception(异常处理)(代码片段)

一、概念    二、异常的处理在SpringMVC中有四种方式进行处理  使用默认的DefaultHandlerExceptionResolver异常处理类  编程式异常处理  自定义HandlerExceptionResolver(全局的处理)  使用注解的方式@ExceptionHandler/@Control... 查看详情

异常处理(代码片段)

异常处理在C#中,所有的异常都是使用一个异常类型的实例对象表示,都继承自System.Exception类型,或者直接使用System.Exception类型的实例对象;位于finally块中的代码可以保证不管代码是正常结束,还是进入异常处理代码块,其中... 查看详情

异常处理(代码片段)

异常是错误发生前的一种信号,如果没有人来处理这个信号,就会中断执行并且抛出错误信息。异常分为语法检查异常和运行时异常:语法检查异常是最低级的异常在编译器里自动提示在文本编辑器时当你运行代码解释器就会检... 查看详情

异常处理(代码片段)

一、什么是异常异常是错误发生前的一种信号,如果没有人来处理这个信,程序就会中断执行并抛出错误信息。二、异常的分类1.语法检查异常2.运行时异常(逻辑异常)这种异常只有在代码被执行时才能发现特点:在没有运行代码... 查看详情

异常处理(代码片段)

什么是异常?异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处... 查看详情

java异常处理(代码片段)

查看详情

phpkohana异常处理(代码片段)

查看详情

异常处理(代码片段)

异常就是程序运行时发生错误的信号IndexError[][1]KeyError[‘key‘]pickle.load()EOFErrorFileNotFoundErroropen(‘aa‘)ModuleNotFoundErrorimportaaaaaaaaaaaValueErrorint(‘sdjkhf‘) 查看详情

异常处理(代码片段)

阅读目录一什么是异常二异常的种类三异常处理四什么时候用异常处理一什么是异常异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止)... 查看详情

springmvc--springmvc异常处理机制(代码片段)

1.SpringMVC异常处理机制1.1异常处理的思路1.2异常处理两种方式使用SpringMVC提供的简单异常处理器SimpleMappingExceptionResolver实现Spring的异常处理接口HandlerExceptionResolver自定义自己的异常处理器1.3简单异常处理器SimpleMappingExceptionResolvSpr... 查看详情

nodejs之异常处理(代码片段)

1.为什么要处理异常?如果我们不处理异常的话,直接会导致程序奔溃,用户体验比较差,因此我们要对异常进行处理,当出现异常的情况下,我们要给用户一个友好的提示,并且记录该异常,方便我们排查。2.在Node.js中常用的... 查看详情