首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏我的博客

    【C++11异常

    异常的概念及使用 1.1 异常的概念 异常处理机制是现代编程语言中处理运行时错误的一种重要方式,其核心思想是将问题的检测与问题的解决分离。 : 通过抛出异常对象来传递错误 异常对象可以包含错误类型、描述、上下文等丰富信息 处理代码集中在catch块中,与正常逻辑分离 1.2 异常的抛出和捕获 异常抛出(throw)机制 当程序检测到异常情况时 ,可以通过throw语句抛出异常: throw MyException("Error occurred", severity); 抛出异常的过程: 构造异常对象(可以是内置类型或自定义类型) 异常对象被复制 异常重新抛出机制 当捕获到异常后需要重新抛出时,可以使用简单的throw;语句。这种语法会将当前捕获的异常对象原封不动地抛出,保持原有异常类型和上下文信息不变。 例如: void func() throw(std::runtime_error, std::logic_error); // 可能抛出两种异常 • C++11异常规范进行了重大改进: 用noexcept

    28610编辑于 2025-12-22
  • 来自专栏Linux网络

    【C++11异常

    前言 上文我们学习到了C++11中类的新功能【C++11】类的新功能-CSDN博客 本文我们来学习C++下一个新语法:异常 1.异常的概念 异常的处理机制允许程序在运行时就出现的问题进行相应的处理 这里有两个注意点:1.沿着调用链的函数可能会提前退出 ,2.一旦程序开始执行抛异常,沿着调用链创建的对象都将销毁 抛出异常对象后,会产生一个异常对象的临时对象,因为抛出的异常可能的局部对象 ,它可以捕捉任意类型的异常,但是并不能知道具体的异常是什么。 ,表示可能会抛出异常,如果会抛出多个类型的异常,使用逗号隔开。 C++11中表示方式会更简便一些,函数后面加noexcept表示不会抛出异常。 但是当这个函数真正抛出异常时,程序会报错停止。 noexcept(函数调用表达式) 还可以作为一个运算符,去检查函数是否可能会抛异常。如果不会抛异常返回true,如果可能会抛异常返回fasle

    16910编辑于 2026-01-14
  • 来自专栏学习/读书笔记

    Java入门(11)-- 异常处理

    这个对象就是异常对象,通过异常处理机制,可以将非正常情况下的处理代码与程序的主逻辑分离,即在编写代码主流程的同时在其他地方处理异常。 常见的异常类: 11.4 自定义异常 使用Java内置的异常类可以描述在编程时出现的大部分异常情况,除此之外,用户只需要继承Exception类即可自定义异常类。 在程序中使用自定义异常类,大体可分为以下几个步骤: 1)创建自定义异常类; 2)在方法中通过throw关键字抛出异常对象; 3)如果在当前抛出异常的方法中处理异常,可以使用try-catch语句块捕获并处理 通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法的声明中指明要抛出的异常;如果要捕捉throw抛出的异常,则必须使用try-catch RuntimeException异常的种类: 11.7 异常的使用原则 Java异常强制用户去考虑程序的强建性和安全性,异常处理不应用来控制程序的正常流程,其主要作用是捕获程序在运行时发生的异常并进行相应的处理

    58730编辑于 2022-04-07
  • 来自专栏生活不止眼前的代码

    SpringCloudGateway笔记(11)-异常拦截

    本文链接:https://blog.csdn.net/yingziisme/article/details/94591183 使用SpringCloudGateway的全局异常拦截 其实这个应该是webflux 的全局异常拦截,由于gateway使用的是webflux的底层,不是servlet容器,异常处理需要继承ErrorWebExceptionHandler 具体实现如下 @Slf4j @Component

    1.3K10发布于 2019-08-30
  • 来自专栏Java 技术小屋

    Java 异常处理下篇:11异常处理最佳实践

    最佳实践早抛出,晚捕获原则早抛出,晚捕获是异常处理中比较经典的原则,它告诉我们出现异常时应该尽可能早的抛出而不是等异常变得更加复杂后再抛出;而捕获异常时,需要等我们可以处理时再进行捕获,而不是为了捕获而捕获 只捕获可以处理的异常来让代码更加健壮,无法处理异常捕获并没有实际意义。 Exception,以便提供更明确的异常信息,让调用者更容易处理异常情况。 public void readFile(String filename) throws IOException { // 读取文件的代码}正确包装自定义异常中的异常在自定义异常中包装其他异常时, try { // 可能抛出异常的代码} finally { // 不要在 finally 块中抛出异常 // 可以记录异常或其他清理操作}避免使用异常进行流程控制异常应该用于处理错误和异常情况

    1.1K40编辑于 2023-12-15
  • Java 异常处理下篇:11异常处理最佳实践

    最佳实践早抛出,晚捕获原则早抛出,晚捕获是异常处理中比较经典的原则,它告诉我们出现异常时应该尽可能早的抛出而不是等异常变得更加复杂后再抛出;而捕获异常时,需要等我们可以处理时再进行捕获,而不是为了捕获而捕获 ,只捕获可以处理的异常来让代码更加健壮,无法处理异常捕获并没有实际意义。 ,但不要同时执行在异常处理中,要么将异常记录下来要么将其抛出,不要两者兼而有之。 java 代码解读复制代码try { // 可能抛出异常的代码} finally { // 不要在 finally 块中抛出异常 // 可以记录异常或其他清理操作}避免使用异常进行流程控制异常应该用于处理错误和异常情况 相反,如果这种异常被包裹在自定义异常中则会更好。NoSuchFileFoundException 则对该方法的调用者更有用。异常处理后清理资源在异常处理中,确保清理已分配的资源,以避免资源泄漏。

    56210编辑于 2024-11-11
  • 来自专栏MasiMaro 的技术博文

    Java 学习笔记(11)——异常处理

    异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException Java中的异常主要分为下列几类: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。 方法声明时可以抛出多个异常,如果多个异常有继承关系,那么只需要抛出父类异常即可。如果父类的方法没有抛出异常,子类在重写父类方法时也不能使用这种方式抛出异常 try...catch 处理异常

    72940发布于 2019-07-01
  • 来自专栏Java

    【Java SE语法篇】11.异常

    比如之前写代码时经常遇到的: 算术异常 数组越界异常 空指针异常 从上述过程中可以看到,Java 中不同类型的的异常,都有与其对应的类进行描述 1.2 异常体系 异常种类繁多,为了对不同异常或者错误进行很好的分类管理 1.3 异常的分类 异常可能在编译时发生,也可能在程序运行时发生,根据发生的时机不同,可以将异常分为: 编译时异常 在程序编译期间发生的异常,称为编译时异常,也称为受检查异常(Checked Exception ) 运行时异常 在程序执行期间发生的异常,称为运行时异常,也称为非受检查异常(Unchecked Exception) RunTimeException:以及其子类对应的异常,都称为运行时异常 (开始匹配异常) { 处理开始匹配异常; } catch (游戏确认异常) { 处理游戏确认异常; } catch (选择英雄异常) { 处理选择英雄异常; } catch (载入游戏画面异常) ,用户必须处理,否则无法通过编译 异常一旦抛出,其后的代码就不会执行 2.3 异常的捕获 异常的捕获,也就是异常的具体处理方式,主要有两种:异常声明throws 以及 try-catch捕获处理。

    34210编辑于 2024-05-07
  • 来自专栏kl的专栏

    Quarkus的No timezone mapping entry for CST异常(11)

    异常问题 quarkus应用使用Graalvm打包成native image后,运行时抛No timezone mapping entry for 'CST'的异常,这个异常是说环境里缺少CST 所以,如果你显示的配置了时区的名称,可能异常就是报不能映射你配置的时区了,解决这个问题只需在配置文件中加入一个参数即可。

    66530编辑于 2023-11-17
  • 《C++进阶之C++11》【异常

    模拟实现】 【哈希表】 【unordered_set/unordered_map 使用介绍】 【unordered_set/unordered_map 模拟实现】 /------------ C++11 C++98和C++11异常规范有什么区别? func() throw(int); 函数仅可能抛出 int 类型异常 void func() throw(int, string); 函数可能抛出 int 或 string 异常 C++11异常规范 过于复杂,C++11 改用更简洁的 noexcept: 语法 含义说明 void func() noexcept; 函数不会抛出任何异常(编译期承诺) void func(); 函数可能抛出任意异常 noexcept:是 C++11 引入的异常规范关键字,用于声明函数是否可能抛出异常

    26720编辑于 2025-12-18
  • 来自专栏阿杜的世界

    【译】11条Java异常处理的最佳实践

    本文翻译自Top 11 Java Exception Best Practices ---- 在之前关于Java异常的文章中,已经探讨过suppressed exceptions和Java Exceptions 如果在这一层次不知道如何处理异常,最好将异常重新抛出,由上层决定如何处理异常。 仅在异常情况下使用异常; 在可恢复的异常情况下使用异常; 尽管使用异常有利于Java开发,但是在应用中最好不要捕获太多的调用栈,因为在很多情况下都不需要打印调用栈就知道哪里出错了。 因此,异常消息应该提供恰到好处的信息。 使用标准异常 如果使用内建的异常可以解决问题,就不要定义自己的异常。 为异常记录合适的文档 为应用中定义的异常定义合适的文档,如果你写了一个自定义的异常却没有文档,其他开发者会不清楚这个异常的含义,为你定义的异常配备对应的文档是一个非常好的习惯。

    64240发布于 2018-08-06
  • 来自专栏devops_k8s

    11 . Python3之异常,调试和测试

    异常就是程序运行时发生错误的信号(在程序出现错误时,会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中错误出发的异常如下: 而错误分成两种: 1.语法错误( 值 异常处理结构: try: # 会出现异常的代码块 except 异常类型 as 异常别名: # 异常处理逻辑 else: # 没有出现异常执行该分支 finally: # 无论是否出现异常都会执行该分支 # 主动抛出异常 raise 异常类型('异常信息') # 自定义异常类 class MyError(BaseException): def __init__(self,msg): self.msg = msg # 断言: # assert 断言条件 异常的种类 在Python中不同的异常可以用不同的类型(Python中统一了类与类型,类型即类)去标识,一个异常标识一种错误. 多分支异常与万能异常 如果你想要的效果是,无论出现什么异常,我们统一丢弃,或者使用同一段代码逻辑去处理他们,那么骚年,大胆去做吧,只要有一个Exception就足够了.

    2.7K40发布于 2020-09-27
  • 来自专栏全栈程序员必看

    Python入门教程:Day11-文件和异常

    文件和异常 在实际开发中,常常需要对程序中的数据进行持久化操作,而实现数据持久化最直接简单的方式就是将数据保存到文件中。 为了让代码有一定的健壮性和容错性,我们可以使用Python的异常机制对可能在运行时发生状况的代码进行适当的处理,如下所示。 块都会被执行,因为exit函数实质上是引发了SystemExit异常),因此我们通常把finally块称为“总是执行代码块”,它最适合用来做释放外部资源的操作。 如果要写入的文件不存在会自动创建文件而不是引发异常。 另外,如果要了解更多的关于Python异常机制的知识,可以看看segmentfault上面的文章《总结:Python中的异常处理》,这篇文章不仅介绍了Python中异常机制的使用,还总结了一系列的最佳实践

    1.4K20编辑于 2022-06-30
  • 来自专栏用户5305560的专栏

    【Python100天学习笔记】Day11 文件和异常

    文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。 为了让代码有一定的健壮性和容错性,我们可以使用Python的异常机制对可能在运行时发生状况的代码进行适当的处理,如下所示。 块都会被执行,因为exit函数实质上是引发了SystemExit异常),因此我们通常把finally块称为“总是执行代码块”,它最适合用来做释放外部资源的操作。 如果要写入的文件不存在会自动创建文件而不是引发异常。 另外,如果要了解更多的关于Python异常机制的知识,可以看看segmentfault上面的文章《总结:Python中的异常处理》,这篇文章不仅介绍了Python中异常机制的使用,还总结了一系列的最佳实践

    1.6K20发布于 2021-12-02
  • 来自专栏可涵的从小白到大牛的征程

    【C++从小白到大牛】C++11异常如何处理?

    C++异常概念 异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。 catch: 在您想要处理问题的地方,通过异常处理程序捕获异常.catch 关键字用于捕获异常,可以有多个catch进行捕获 如果有一个块throw一个异常,捕获异常的方法会使用 try 和 catch 异常的使用 3.1 异常的抛出和捕获 异常的抛出和匹配原则: 1. 异常是通过抛出对象而引发的,该对象的类型决定了应该激活哪个catch的处理代码。 可能会抛异常的啥都别加,确定不抛异常,加noexcept 4.异常的优缺点 C++异常的优点: 1. C++标准库的异常体系定义得不好,导致大家各自定义各自的异常体系,非常的混乱。 5. 异常尽量规范使用,否则后果不堪设想,随意抛异常,外层捕获的用户苦不堪言。

    43510编辑于 2024-10-16
  • 来自专栏韩曙亮的移动开发专栏

    【Python】异常处理 ① ( 异常概念 | 异常处理 | 异常捕获 )

    一、Python 异常简介 1、异常概念 Python 异常 是在程序运行过程中发生的错误或问题的表示 ; 出现异常可能会中断程序的正常执行流程 , 并引发一个异常对象 ; 此时 , 需要 捕获和处理 异常对象 , 以防止程序崩溃或引发更严重的错误 ; 2、Python 异常示例 在之前的博客中介绍了文件操作 , 如果以只读的形式打开不存在的文件 , 就会导致异常的出现 ; 出现异常代码 : """ ---- 程序出现异常有两种情况 : 整个应用因为该异常停止运行 ; 对异常进行捕获处理 , 应用正常运行 ; 1、异常处理简介 程序出现异常导致无法运行 , 这种情况下 并不是要求程序没有异常完美运行 , 而是在力所能及的范围内 , 对可能出现的异常进行处理 ; 异常处理 就是 在可能出现异常的代码块中 , 对可能出现的异常做好提前准备 , 出现异常时将异常捕获 , 然后针对异常类型进行不同的处理 ; 异常捕获语法 : try: 可能出现异常的代码块 except: 出现异常后执行的代码块 2、代码实例 - 出现异常代码 执行 """ 文件操作 代码示例 """ open("file3.txt

    3.2K10编辑于 2023-10-11
  • 来自专栏Java实战博客

    异常 & 自定义异常 & 常见异常

    异常面试题: thorw 与 throws的区别? thorw throw一定会执行 throw写在于 方法体 中 后面跟的是异常对象 throws throws可能会执行 throws写在 类 上 后面跟的是异常 类 自定义异常 自定义异常的制作 首先定义一个类 让其继承Exception 或者 RuntimeException 在其构造方法里面 写一个带String参数 message 方法体里面只有super ScoreException() { } public ScoreException(String mess) { super(mess); } } 测试使用异常 时候 就会出现空指针异常问题。

    1.8K10编辑于 2022-01-17
  • 来自专栏python3

    异常--python异常处理

    当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 异常处理 捕捉异常可以使用try/except语句。 如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。 finally块中的所有语句执行后,异常被再次触发,并执行except块代码。 参数的内容不同于异常异常的参数 一个异常可以带上参数,可作为输出的异常信息参数。 else: print 2 执行以上代码,输出结果为: $ python test.py Traceback (most recent call last): File "test.py", line 11 , 0) 用户自定义异常 通过创建一个新的异常类,程序可以命名它们自己的异常异常应该是典型的继承自Exception类,通过直接或间接的方式。

    4.3K20发布于 2020-01-10
  • 来自专栏cwl_Java

    异常问题-异常处理

    在统一异常处理类中去捕获异常,无需controller捕获异常,向用户返回统一规范的响应信息。 系统对异常的处理使用统一的异常处理流程: 自定义异常类型。 可预知异常是程序员在代码中手动抛出本系统定义的特定异常类型,由于是程序员抛出的异常,通常异常信息比较 齐全,程序员在抛出时会指定错误代码及错误信息,获取异常信息也比较方便。 对于不可预知的异常(运行时异常)由SpringMVC统一捕获Exception类型的异常。 在controller、service、dao中程序员抛出自定义异常;springMVC框架抛出框架异常类型 统一由异常捕获类捕获异常,并进行处理 捕获到自定义异常则直接取出错误代码及错误信息,响应给用户

    3.3K20发布于 2020-01-14
  • 来自专栏全栈开发那些事

    异常异常处理

    异常异常处理 1、异常体系结构 1.1 什么是异常? 1、异常体系结构 1.1 什么是异常异常的种类有很多,如空指针异常、类型转换异常、数组下标越界异常等,java将这些异常归为运行时异常(RuntimeException)。 针对运行时异常,java编译器将不会给出任何提醒,因此运行时异常又称为非受检异常. 1.3 常见的异常和错误类型 ArrayIndexOutOfBoundsException:数组小标越界异常。 如果有多个异常类型,则使用逗号分割,多个异常类型之间的顺序可以随意。throws后面跟的异常类型,可以是方法中可能产生的异常类型本身或其父类异常类型。

    3.3K40编辑于 2023-02-25
领券