首页 > 其他分享 >(随笔)e.printStackTrace()和throw new RuntimeException(e)区别

(随笔)e.printStackTrace()和throw new RuntimeException(e)区别

时间:2023-08-16 18:56:16浏览次数:34  
标签:RuntimeException 处理 printStackTrace new 异常 throw

e.printStackTrace()throw new RuntimeException(e)都是处理异常的方式,但它们有一些区别。

  1. e.printStackTrace(): 这是一个用于打印异常信息的方法。它将异常的完整堆栈跟踪输出到标准错误流(通常是控制台)。它将输出异常的类型、出现异常的位置以及其他相关的异常信息。e.printStackTrace()用于调试和排查问题,以便开发人员查看异常的详细信息并追踪异常发生的位置。

  2. throw new RuntimeException(e): 这是一种将异常重新抛出的方式。通过创建一个新的RuntimeException对象,并将原始异常对象作为其原因(cause)传递给新异常对象,然后将新异常对象抛出。这样做将允许异常在方法之间传播,直到遇到能够处理该异常的地方。

区别在于处理异常的方式不同。e.printStackTrace()只是将异常信息打印到控制台,并没有对异常进行处理或重新抛出。而throw new RuntimeException(e)将异常重新抛出,表示当前的方法无法处理该异常,将异常传递给调用者进行处理。

通常情况下,对于遇到的异常,应该根据具体情况进行处理。使用e.printStackTrace()可以在开发和调试阶段查看异常的详细信息。而使用throw new RuntimeException(e)将异常重新抛出,允许在不同的方法或层次结构中进行适当的异常处理和传播。

标签:RuntimeException,处理,printStackTrace,new,异常,throw
From: https://www.cnblogs.com/Joseph-Jonardo/p/17635939.html

相关文章

  • Hugging News #0814: Llama 2 学习资源大汇总
    每一周,我们的同事都会向社区的成员们发布一些关于HuggingFace相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「HuggingNews」。本期HuggingNews有哪些有趣的消息,快来看看吧!......
  • New与override区别
    New与Override区别New(隐藏)new是指“隐藏”,是指子类隐藏了父类的方法,当然,通过一定的转换,可以在子类的对象中访问父类的方法。new是派生类用来隐藏基类中的方法的;也就是说在派生类中“看不到”基类中的方法;如果要在派生类中隐藏(不是重写)基类中的方法,而没有使用new关键字,编......
  • 题解 CF379D New Year Letter
    思路提供一种比较容易想到的做法。拿到题看数据范围发现都很小,所以放心大胆地暴力。容易发现\(s_i\)中AC的个数等于\(s_{i-2}\)中AC的个数加\(s_{i-1}\)中AC的个数再加上两者拼接处可能有的一个AC。所以\(s_1\)和\(s_2\)从第二个字符到倒数第二个字符这之间......
  • NEW learning : Regular Expression
    STEP1:TheprimaryformulaintheREcodebase:   result=re.match(pattern,str)#pattern为要校验的规则#str为要进行校验的字符串>>>importre>>>print(re.match('www','www.runoob.com').span())#在起始位置匹配(0,3)>>>......
  • C++使用new来初始化指向类的指针
    C++使用new来初始化类的指针1.ClassName*p=newClassName;调用默认构造函数。如果类里没有写默认构造函数,会使用编译器帮我们生成的,但不会初始化成员变量,如classNoConstructor//没写构造函数的类{public:~NoConstructor(){}voidprintVal(){......
  • Json 基于类 Newtonsoft.Json.Linq.JToken 的应用简介【C# 基础】
    〇、前言在日常开发中,对于Json的使用还是比较频繁的,特别是Json对象和字符串或者实体对象之间的转换。虽然几乎天天用,但是总是感觉没那么明了,今天结合微软的Newtonsoft.Json.Linq类,试着详解一下,把相关的内容列一下。一、Newtonsoft.Json.Linq的层级结构简单画个图,肯定比......
  • Selenium Web 自动化 - Selenium(Java)环境搭建 (new)
    SeleniumWeb自动化-Selenium(Java)环境搭建(new)2023-08-110背景开发工具idea代码管理mavenjdk1.8webdriverchrome1chromedriver&chromechromedriver和chrome要对应上:chomedriver下载地址:淘宝镜像 这里用的是 chromedriver88-0-4324-96.zipchrome下载地址:......
  • 《JSON篇》使用Newtonsoft.Json创建JSON对象
    使用Newtonsoft.Json创建JSON对象参考链接:https://blog.csdn.net/chentiebo/article/details/130383788一、创建JSON对象JObjectstaff=newJObject();staff.Add(newJProperty("Name","Jack"));staff.Add(newJProperty("Age",33));staff.Add(newJ......
  • 生产环境 e.printStackTrace 导致的 控制台阻塞,导致的请求一致pending无返回
    首先该服务是使用java调用控制台脚本启动的jar包 同时java调用服务的控制部分也理所应当的Processprocess=null;try{process=Runtime.getRuntime().exec(cmd,null,null);process.getO......
  • Paper Reading: Multitree Genetic Programming With New Operators for Transfer Lea
    目录研究动机文章贡献本文方法从源域中提取知识基于MTGP的迁移学习转换域的特征、实例权值数据插值MTGP适应度函数遗传算子实验结果数据集实验设置同构情况下的SR异构情况下的SR存在缺失值的真实数据集的SR训练时间学习到的转换表达式遗传算子比较消融实验优点和创新点Pape......