10-异常处理机制

2020-10-31-介绍SpringBoot默认的异常处理机制。 介绍SpringBoot默认的异常处理机制。 如何定义错误页面。 如何自定义异常数据。 如何自定义视图解析。 介绍@ControllerAdvice注解处理异常。 一、SpringBoot默认的异常处理机制 默认情况下,SpringBoot为以下两种情况提供了不同的响应方式: Browser Clients浏览器客户端:通常情况下请求头中的Accept会包含text/html,如果未定义/error的请求处理,就会出现如下html页面:Whitelabel Error Page,关于error页 阅读详情

异常

Python提供了异常处理机制,可以在异常出现时即时捕获,然后内部消化,让程序继续运行。

捕获异常

捕获异常格式:
try:
可能出异常的代码
except XXXX:
报错后执行的代码

try…except

# print(2/0) #ZeroDivisionError: division by zero
try:
    print(2/0)
except:
    print("抛异常了")

try:
    print(2/0)
except ZeroDivisionError as ze:
    print("抛异常了")
    print(ze) # division by zero
    print(ze.args) # ('division by zero',)

try…except…except…except

多个except结构:捕获异常的顺序按照先子类后父类的顺序,为避免遗漏可能出现的异常,可以在最后增加BaseException。

try:
    print(2/0) # 除数不能为0
    print(name) # name变量未命名
    list1 = [1,2]
    print(list1[3]) # 列表索引过界
except ZeroDivisionError as e:
    print('除数不能为0',e)
except NameError as e:
    print('变量未命名',e)
except BaseException as e:
    print('抛出异常。',e.args) 

try…except…else

如果try块中没有抛出异常,则执行else块,如果抛出异常,则执行except。

def fun(num):
    try:
        value = 100/num
    except Exception as e:
        print('抛异常了',e)
    else:
        return value

# fun(0) # 抛异常了 division by zero

print(fun(50)) # 2.0

try…except…else…finally

try…except…else…finally结构:finally块无论是否发生异常都会被执行,常用来释放try块中申请的资源。

try:
    file = open(r'E:\VS_Code_Workspace\moreTest\test\text.txt')
    print(1,2)
except BaseException:
    print('抛出异常')
else:
    print('没有异常执行此行代码')
finally:
    print('关闭资源')

#输出结果:
# 抛出异常
# 关闭资源

traceback模块

traceback模块:使用traceback模块打印异常信息。

import traceback

try:
    print(2/0)
except:
    print("抛异常")
    print('抛异常',traceback.print_exc())

# 抛异常
# Traceback (most recent call last):
#   File "e:/VS_Code_Workspace/moreTest/test/except1.py", line 57, in <module>
#     print(2/0)
# ZeroDivisionError: division by zero
# 抛异常 None

抛异常raise

可以使用raise语句自己触发异常,一个异常可以是一个字符串,类或对象。

# 抛异常
def setAge(num):
    if num <0 or num >120:
        raise Exception("Invalid level!",num)

setAge(-1) # Exception: ('Invalid level!', -1)

用户自定义异常

通过创建一个新的异常类,程序可以命名它们自己的异常。
异常应该是典型的继承自Exception类,通过直接或间接的方式。

class MyException(Exception):
    def __init__(self,errorcode,info):
        self.errorcode = errorcode
        self.info = info

try:
    raise MyException('401','请求体有问题')
except Exception as e:
    print(e) # ('401', '请求体有问题')
docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp 阅读详情

相关推荐

深度学习动画实战:用MotorNerve系统5步实现自然角色交互

本文详细介绍了如何利用腾讯游戏的MotorNerve系统,通过深度学习技术5步实现自然角色动画交互。从环境搭建、基础运动控制到交互过渡和行走转向优化,该系统能显著提升游戏动画制作效率,尤其适合中小团队替代昂贵的动捕方案。重点解析了骨骼动画配置、PFNN控制器使用及Blender工作流集成等核心技术。

book8的博客 686

10.2 Python异常处理机制到底有什么用?

异常处理是现代编程语言不可或缺的能力,它已经成为衡量一门编程语言是否成熟和健壮的标准之一,C++、Java、C#、Python 等高级语言都提供了异常处理机制。 无论你是多么优秀的程序员,你都不能保证自己的程序永远不会出错。就算你的程序没有错,用户也不一定按照你设定的规则来使用你的程序,总有一些小白或者极客会“玩弄”你的程序。 除此以外,你也不能保证程序的运行环境永远稳定,比如操作系统可能崩溃,网络可能无法连接,内存可能突然坏掉…… 总之,你基本什么都保证不了。但是,作为一个负责任的程序员,我们要让自己的程

小董老师的博客 551

CentOS7全隔离环境部署Nvidia Tesla A100 40G驱动与CUDA工具包实战

本文详细介绍了在CentOS7全隔离环境下部署Nvidia Tesla A100 40G显卡驱动与CUDA工具包的实战经验。通过构建本地YUM仓库、解决驱动依赖问题以及三重验证法,确保Tesla A100与CUDA 11.7的完美兼容。同时分享了Anaconda3离线部署技巧,帮助用户在隔离环境中高效搭建Python GPU开发环境。

weixin_27215337的博客 401

10.12 Python异常机制使用细则,正确使用Python异常处理机制

前面介绍了使用异常处理的优势、便捷之处,本节将进一步从程序性能优化、结构优化的角度给出异常处理的一般规则。 成功的异常处理应该实现如下 4 个目标: 使程序代码混乱最小化。 捕获并保留诊断信息。 通知合适的人员。 采用合适的方式结束异常活动。 下面介绍达到这些效果的基本准则。 不要过度使用异常 不可否认,Python 的异常机制确实方便,但滥用异常机制也会带来一些负面影响。过度使用异常主要表现在两个方面: 把异常和普通错误混淆在一起,不再编写任何错误处理代码,而是以简单地引发异常来代苦所有的错误处理。

小董老师的博客 785

400G光模块测试全攻略:从PCS层到CMIS合规的避坑指南

本文为网络设备测试工程师和光通信研发人员提供了一份详尽的400G光模块测试实战指南。文章深入剖析了从PCS层信号完整性、FEC容限到CMIS管理接口合规性测试的全流程,并分享了ANLT协议分析、SerDes眼图调试以及系统级流量压力测试中的核心技巧与常见避坑点,旨在帮助读者构建一套高效、精准的测试体系,确保高速光模块的可靠性与性能。

weixin_29300931的博客 211

LEfSe分析避坑指南:如何解决R语言中的常见错误与优化结果可视化

本文提供了R语言中进行LEfSe(线性判别分析)微生物组差异分析的全流程避坑指南。详细解析了从数据格式准备、参数调优(如显著性水平与LDA阈值)、结果可靠性验证到使用ggplot2进行高级可视化的实战技巧,帮助用户规避常见错误,获得更稳健、美观的分析结果。

weixin_29098391的博客 361

10. pyhton - 异常处理机制

8. 异常处理机制 概念 语法错误:程序无法编译的错误 异常:程序在运行的时候报出来的错误 异常处理格式 基本格式 try : 可能存在异常的程序 except : 有异常执行的代码 [except 异常类型 as err : 有异常执行的代码] [else : 没有异常执行的代码 ] [finally: 无论有无异常都会执行的代码 ] 使用案例 基本使用方法 def fun(): try : n1 = int(input("输入第一个数字:

园长QwQ 393

SiC双向车载充电器技术解析与V2G应用

碳化硅(SiC)功率器件凭借其高击穿电场强度、优异热导率和低开关损耗特性,正在重塑电力电子系统的设计边界。作为第三代半导体材料的代表,SiC MOSFET通过降低80%的开关损耗,使车载充电器(OBC)效率突破96.5%。在双向能量转换架构中,图腾柱PFC与CLLC谐振变换器的组合实现了ZVS软开关,配合三维集成散热方案使功率密度达54W/in³。这些技术进步直接支撑了V2G(车辆到电网)应用场景,使电动车成为虚拟电厂(VPP)的关键单元。通过智能充放电策略优化,电池循环寿命可提升至4000次以上,为电力市

weixin_30693683的博客 275

10.4 Python异常处理机制的底层实现

前面章节中,我们详细介绍了try except异常处理的用法,简单来说,当位于 try 块中的程序执行出现异常时,会将该种异常捕获,同时找到对应的 except 块处理该异常,那么这里就有一个问题,它是如何找到对应的 except 块的呢? 我们知道,一个 try 块也可以对应多个 except 块,一个 except 块可以同时处理多种异常。如果我们想使用一个 except 块处理所有异常,就可以这样写: try: #... except Exception: #... 这种情况下,

小董老师的博客 367

手把手教你用Xilinx SelectIO IP核搞定ADS42LB69高速ADC的DDR数据采集(附仿真调试技巧)

本文详细介绍了如何使用Xilinx SelectIO IP核实现ADS42LB69高速ADC的DDR数据采集,包括IP核配置、仿真验证和硬件调试技巧。通过精准的时序控制和实战调试方法,解决高速数据采集中的时序对齐问题,提升系统稳定性和可靠性。特别适合FPGA工程师和高速ADC接口设计者参考。

weixin_42533622的博客 153

压缩包密码破解工具ZIP Cracker2.0.1.2 正式版

一款多功能文件密码破解工具,支持ZIP、RAR、Office等主流加密格式,提供CPU/GPU双模式破解。该软件采用黑客风格界面,具备环境自检修复功能,支持实时监控硬件使用率。内置hashcat等专业破解工具,通过拖拽文件即可快速破解,GPU模式速度可达CPU的10-100倍。最新版本优化了中文路径支持,并提升了启动速度。

bfq05234214的博客 482

python10——异常处理(异常处理机制、raise)

目录一、Error和Exception二、异常处理机制 一、Error和Exception Error(错误)是系统中的错误,程序员是不能改变的和处理的,如系统崩溃,内存空间不足,方法调用栈溢等。遇到这样的错误,建议让程序终止。 Exception(异常)表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。 二、异常处理机制 Python 的异常机制主要依赖 try 、except 、else、finally 和 raise 五个关键字。

qwejiaji的博客 1306

通过WorkVisual连接KUKA机器人的具体方法

通过WorkVisual连接KUKA机器人的具体方法

Robot_PLC_HMI_Automation 6843

10.7 Python异常处理机制结构详解

到本节为止,读者已经学习了整个 Python 的异常处理机制的结构,接下来带领大家回顾一下,在此过程还会讲解一些新的知识。 首先,Python 完整的异常处理语法结构如下: try: #业务实现代码 except Exception1 as e: #异常处理块1 ... except Exception2 as e: #异常处理块2 ... #可以有多个 except ... else: #正常处理块 finally : #资源回收块 ... 整个异常处理结构的执行过程,如

小董老师的博客 456

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【30天熟悉Go语言】10 Go异常处理机制

Go的异常处理分三块:通过defer关键字 + recover()函数捕获异常、通过errors包下的New()函数自定义异常、通过panic()函数中断程序执行。

健身变秃,coding变强 1426

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

.NET10之 ASP.NET Core 异常处理机制

尽管 ASP.NET Core 提供了内置的异常处理机制,但在实际应用中,开发者往往需要根据特定需求进行定制。

无风听海 936

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C++学习笔记10 - 异常处理机制

何为异常处理 异常exception,即运行时错误 C中没有异常机制,所以运行时遇到错误只能终止程序 C++中新增了异常处理机制,允许程序在运行时拦截错误并处理,这样程序就不用终止 异常机制的一个典型案例就是:由用户输入2个数字然后相除中的除0异常 try , catch , throw 异常处理机制为什么优于出错条件判断:https://www.cnblogs.com/wkfvawl/p/10816156.html 异常和函数 throw 一个异常后,如果没有 catch,会层层向外传递,直到被 c

qq_38958704的博客 1115

第10周 预习、实验与作业:异常处理机制

说出两个你在编写Java程序时最常遇到的异常。并判定这些异常是什么类型的问题(编译期问题、运行时问题)。查询JDK文档,说说如下代码哪行抛出了什么类型的异常?为什么该段程序在运行时可能产生问题,但是不写try...catch,也可编译通过。说出两个我们在使用软件、APP时遇到的异常。这些异常可能是什么类型的异常?使得当输入错误时,可提示重新输入,直到输入正确后,才能继续往下执行。课外阅读:AI大模型相关资料,掌握使用良好的Prompt生成高质量内容。先看预习课件,认真完成里面的习题与调查。

zhrb 475

10.2 异常处理机制 10.2.1 使用try-catch捕获异常

10.2 异常处理机制10.2.1 使用try-catch捕获异常抛出异常的过程捕获异常的过程出现异常时没有处理该异常的catch块时程序直接退出document.querySelector(".post-body > ul").style.display="none"10.2 异常处理机制Java的异常处理机制可以让程序具有极好的容错性,让程序更加健壮。当程序运行出现意外情形时,系统会自动生成一...

测试 224

Java基础(10):Java异常体系详解和异常处理机制

异常处理机制和体系结构         Java异常是指在程序运行过程中出现错误,从而影响程序流程的正常运行。而异常处理机制可以保证程序出现错误后,控制接下来的程序流程,是选择定位错误信息,还是抛出异常或捕获异常、还是避免程序非正常退出,都取决于我们。 异常体系结构(附网图一张)                                 通过上面的异常体系结构图可以清晰看

我只是个程序员。 1200

struts2开发10--struts2异常处理机制

在传统的异常处理方式中,开发者一般需要编写大量的try-catch块来处理异常,而在struts2中,提供了一种声明式的异常处理方式,通过配置拦截器来实现异常处理。下面以要求的年龄不能为空和只能为数字来说明struts2中的异常处理,当用户输入的年龄为空或者不为数字时,则拦截异常,并在页面中提示用户异常信息,具体步骤如下 第一步:创建ExceptionTestAction,其代码如下: pa...

qingff01的专栏 161

python异常处理和错误调试:解释Python中的异常处理机制

异常处理是一种在程序执行过程中捕获和处理错误的机制。在Python中,异常是指在程序运行期间发生的错误或异常情况,如除零错误、索引错误、类型错误等。异常处理机制允许我们捕获并处理这些异常,以避免程序崩溃并提供错误处理和恢复的机会。在Python中,异常处理使用`try-except`语句块来实现。`try`块包含可能引发异常的代码,而`except`块用于捕获和处理异常。在上面的示例中,`try`块中的代码会引发`ZeroDivisionError`异常,然后被`except`块捕获。

qq_41314882的博客 258

Java 异常处理机制总结

开发工具与关键技术:Myeclipse 10,Java 作者:刘俊杰 撰写时间:2019年04月30日 Java的异常处理机制可以让程序具有极好的容错性,让程序更加健壮。当程序运行出 现意外情形时,系统会自动生成一个 Exception对象来通知程序,从而实现将“业务功 能实现代码”和“错误处理代码”分离,提供更好的可读性 异常类型 Exception 异常层次结构的根类 Arith...

weixin_44552202的博客 419

Java中异常处理机制

异常可能是在程序执行过程中产生的,也可能是程序中throw主动抛出的。异常产生后,会使用一个对应类型的异常对象包装该异常,尝试寻找异常处理程序来处理异常。异常处理机制可以在程序发生异常时,对其执行预先设定的异常处理逻辑。Java标准库内建了一些通用的异常。Throwable派生Error、Exception。Error类及其子类代表的是JVM本身的错误,并非程序的问题,不能由程序员通过代码进行处理...

我爱编程持之以恒 2858

Java异常处理机制

Java异常处理机制:Java的异常处理机制可以让程序具有极好的容错性,让程序更加健壮。当程序运行出现意外情形时,系 统会自动生成一个 Exception对象来通知程序,从而实现将“业务功能实现代码”和“错误处理代码”分离, 提供更好的可读性。 使用try...catch捕获异常 Java异常处理机制为:抛出异常,捕捉异常,处理异常。 try...catch语法格式 如图所示: 在使用try...catch捕获处理异常时需要注意: 1. 不要过度使用异常,不能使用异常处理机制来代替正常.

xiaoxiaoyujing的博客 168

Python技术分享之异常处理机制

在Python无法正确处理程序时,就会发生异常;当发生异常时,我们需要捕获它并进行处理,否则程序会终止运行。但如何处理异常呢?有哪些方法?接下来就给大家讲解Python异常处理机制。 想要学好Python异常处理,我们要了解四个关键词和五种处理机制: 1、四个关键词: try:包含着可能引发异常的代码; except:则用来捕捉和处理发生的异常; else:如果try块中没有抛出异常,则执行else块; finally:无论是否发生异常都会被执行,通常用来释放try块中申请的资源。 2、五种处理机制: tr

xiaoxijing的博客 452
上一篇: 09-函数
下一篇: 11-类以及实例对象
b14050421
博客等级 码龄9年 49粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值