throw new RuntimeException(e)与e.printStackTrace( )的区别

【rk3566/3568】Android 11移植gms 【rk3566/3568】Android 11移植gms 1、前言 测试功能时,想去Google play store去下个应用测试,发现通过网页搜索总是下载不到正确的谷歌服务框架;于是就不得不去搞一个内置的gms。 2、移植 1、需要下载Android 11对应的gms的包 opengapps 2、看下文件目录 直接移植core里面的文件,GAPPs Optional按需添加 3、在vendor下创建google目录 ... 阅读详情

【java知识点异常】throw new RuntimeException(e)与e.printStackTrace( )的区别

2018年04月29日 11:07:58 zq爱生活爱代码 阅读数:115

转载自:https://blog.youkuaiyun.com/xuzhuaaron1/article/details/73611404
e.printStackTrace( )是打印异常栈信息,而throw new RuntimeException(e)是把异常包在一个运行时异常中抛出。

我们常看见这种写法
try{
....

}catch(Exception e){
e.printStackTrace( );
throw new RuntimeException(e);
//throw new RuntimeException(e.getMessage());



}
这是处理没法进一步处理的异常的一般做法。try块中出现了一个异常,它被catch住了,我们首先要在标准输出上打印出异常但是如果没有throw这句,这个错误就静悄悄地被catch块吃掉了,程序会继续运行。可这个时候很可能你的程序的状态已经不对了,继续下去也没有什么意义,所以应该继续抛出这个异常。你当然可以写throw e;,但是这个e是一般的异常,如果这样抛出的话,你得在这个函数头上用throws来声明,比如:
public void abc() throws Exception
然后调用这个函数的函数也还得这么干,所以一般的处理是把e包装成运行时异常:new  RuntimeException(e),这样就不需要在函数头声明了。

但这只是一般的处理方法,在实际程序中不可不顾实际情况和需求生搬硬套。
 
e.printStackTrace();在实际开发时意义不大,因为部署以后不会有人看控制台,这句很多情况下会被记录日志的代码代替。 throw new RuntimeException就是要把异常继续抛出,要么由上层方法解决,要么会终止程序运行,比如这里,如果初始化都无法正确完成,再继续运行下去也没有必要了。至于说多打印一句话,还是因为在工具环境下,你比较关注控制台,实际部署环境,没人看控制台信息,都会去看日志中记录的异常信息。 有结束进程的作用。
try catch如果不写throw new RuntimeException 只是不执行本方法后面的代码,然后跳出本方法后继续执行其他方法,不会结束程序。 如果在其他应用中,还可以把异常抛给上层调用者来处理。
【unity游戏开发入门到精通——UGUI】UI控件 —— Image图像控件 阅读详情

相关推荐

基于Python的微信聊天记录分析——数据获取

本篇为“基于Python的微信聊天记录分析”第一篇,主要涉及数据获取,包括Python环境配置、WeChatMsg项目配置和运行、获取聊天记录等内容,流程简单、比较基础,后续这个系列会涉及基于Python的数据处理、统计分析、NLP技术等内容。希望和大家多多交流,共同进步!

Henryli1202的博客 1万+

java异常处理throw new RuntimeException(e)

1.java try catch 异常后还会继续执行吗? catch 中如果你没有再抛出异常 , 那么catch之后的代码是可以继续执行的 , 但是try中 , 报错的那一行代码之后 一直到try结束为止的这一段代码 , 是不会再执行的。 //代码1 public static void test() throws Exception { throw new Exception("参数越界"); System.out.println("异常后"); //编译错误,「无法访问的语句

mocas_wang的博客 3万+

COMSOL中的动网格

首先我们先了解几个概念 (1)网格重划分(remesh):就是在某些特定的区域进行网格的重新划分,在Maxwell软件中的直线运动区域,当运动物体运动后,这个区域进行重新划分。 (2)morph:网格不重新划分,小范围的进行网格变形,针对运动物体运动位移较小,对变形区域不进行重划分,能够提高效率。 (3)网格滑移(sliding):针对圆形运动区域,运动与非运动区域进行网格滑移,当然边界上两侧网格不共节点,该方法不需要网格重新划分,大部分软件针对圆形运动区域采用该方法,比如maxwell的band,b

midiio的博客 7870

throw new RuntimeException(e)和e.printStackTrace()区别和理解

1.e.printStackTrace()是打印异常栈信息 2.throw new RuntimeException(e)是吧异常包在一个运行时异常中抛出 第一句话感觉实际开发意义不大,很少有人会去看控制台打印。。 第二种是把异常继续抛出,要么由上层方法解决,要么终止程序进行,应用范围比较广。 public Account findAccountByid(Integer id) { try { return runner.query("select * from ac

weixin_43323647的博客 3060

[Ethernet in CANoe]2--如何在CANoe中去仿真CP版本的SOME/IP通信

上篇文章()介绍了SOME/IP的两种类型的数据格式,根据作者目前的项目经验,目前在CANoe V18之前的版本,CP版本的arxml是最方便实现SOME/IP以太网仿真的。作者目前只有CANoe V17的license,所以本片文章是在CANoe 17上基于CP版本的arxml去做仿真模拟。

汽车ECU自动化测试 1764

反射机制——通过反射调用service中方法

需求:现在有一群service接口,有同一个方法名称,内部逻辑除了调用不同的调用自身的方法外其他基本都一致,那现在就需要一个独立的方法来勾勒出这个方法 1.SpringContextUtil package com.XXX.report.util; import org.apache.log4j.Logger; import org.springframework.beans.BeansE...

东天里的冬天 8521

【java知识点异常】throw new RuntimeException(e)与e.printStackTrace( )的区别

e.printStackTrace( )是打印异常栈信息,而throw new RuntimeException(e)是把异常包在一个运行时异常中抛出。我们常看见这种写法try{....}catch(Exception e){e.printStackTrace( );throw new RuntimeException(e);}这是处理没法进一步处理的异常的一般做法。try块中出现了一个异常,它被

xuzhuaaron1的博客 1万+

uniApp微信小程序:利用live-pusher人脸活体检测功能+完整示例代码,uniapp使用live-pusher直播推流组件实现人脸验证-活体检测,检测人脸中的动作包括眨眼、张嘴、左右摇头动作

UniApp 使用 live-pusher 实现人脸活体检测(附完整源码)uniapp开发微信小程序人脸检测活体检测,在uni-app的微信小程序项目中使用live-pusher实现人脸识别,uniapp使用live-pusher实现模拟人脸识别效果,张张嘴、眨眨眼、向左摇头、向右摇头等动作,免费使用人脸活体检测的插件方案,uniapp小程序怎么免费使用人脸活体,直播推流,UNIAPP微信小程序使用live-pusher实现人脸识别(拍照)功能,在uni-app项目中实现人脸识别,既使用uni-app中的l

✅ 精选推荐文章 3013

Java-异常

Java语言中,将程序执行中发生的不正常情况称为异常。(开发过程中的语法错误和逻辑错误不是异常)

Ego_Ekko的博客 1462

基于MATLAB的特征模式分解(FMD)算法详解

本文详细介绍了基于MATLAB的特征模式分解(FMD)算法实现。FMD是一种新型自适应信号分解方法,通过自适应FIR滤波器组和相关峭度优化目标,有效解决传统方法(如EMD、VMD)的模态混叠问题。文章系统阐述了FMD的算法原理、数学模型和实现步骤,包括自适应FIR滤波器设计、相关峭度优化和模态选择机制。与现有方法相比,FMD在旋转机械故障诊断中展现出更强的特征提取能力和噪声鲁棒性。MATLAB实现部分包含核心函数、参数优化和可视化工具,并通过轴承故障等案例验证了算法的有效性。

qq_42212808的博客 193

【知识分享】IBIS 建模指南 03

本文介绍了差分缓冲器的数据提取方法,重点分析了差分系统与单端系统的核心差异。文章详细阐述了差分接收机和驱动器的结构特点、工作原理及建模方法,指出全差分结构具有优异的电源噪声抑制能力。针对IBIS建模规范,作者提出了三维I-V曲面数据提取技术,并介绍了共模/差模电流分离、片上端接处理以及V-T表生成的解决方案。文章还探讨了差分电容(C_diff)的测量方法和数据简化策略,为复杂差分缓冲器的精确建模提供了系统化的技术路径。

一只豌豆象的博客 1282

throw new RuntimeException("",e)

e.printStackTrace( )是打印异常栈信息throw new RuntimeException(e)是把异常包在一个运行时异常中抛出。e.printStackTrace();在实际开发时意义不大,因为部署以后不会有人看控制台,这句很多情况下会被记录日志的代码代替。throw new RuntimeException就是要把异常继续抛出,要么由上层方法解决,要么会终止程序运行,比如这里...

qq_39486465的博客 5761

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

新版idea默认throw new RuntimeException(e),而不是e.printStackTrace();

throw new RuntimeException就是要把异常继续抛出,要么由上层方法解决,要么会终止程序运行,比如这里,如果初始化都无法正确完成,再继续运行下去也没有必要了。所以,有可能是新版idea更倾向于开发,所以默认throw new RuntimeException(e),而不是e.printStackTrace();在实际开发时意义不大,因为部署以后不会有人看控制台,这句很多情况下会被记录日志的代码代替.e.printStackTrace( )是打印异常栈信息.

qq_45788179的博客 432

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

异常小疑问 e.printStackTrace();和throw new RuntimeException(e);

...

weixin_56531639的博客 676

需要用throw new RuntimeException(e)吗?

catch 中如果你没有再抛出异常 , 那么catch之后的代码是可以继续执行的 , 但是try中 , 报错的那一行代码之后 一直到try结束为止的这一段代码 , 是不会再执行的。 //代码1 public static void test() throws Exception { throw new Exception("参数越界"); System.out.println("异常后"); //编译错误,「无法访问的语句」 } 若一段代码前有异常抛出,并且这个异常没有被捕获,这段

潘小蓝的博客 1361

throw new RuntimeException

e.printStackTrace();在实际开发时意义不大,因为部署以后不会有人看控制台,这句很多情况下会被记录日志的代码代替。 throw new RuntimeException就是要把异常继续抛出,要么由上层方法解决,要么会终止程序运行,比如这里,如果初始化都无法正确完成,再继续运行下去也没有必要了。 至于说多打印一句话,还是因为在工具环境下,你比较关注控制台,实际部署环境,没人看控制

M麦神 1880

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

关于两者异常处理的介绍和说明

weixin_55825875的博客 259

Java 异常、try catch、Thorwable、printStackTrace、throws和throw的区别、自定义异常

异常:程序出现不正常情况 Thorwable --> 1.Error 2.Exception --> 2.1 RuntimeException 2.2 非RuntimeException Error:严重问题,不需要处理 Exception:称为异常类,表示程序本身可以处理的问题 RuntimeException:编译期不检查,出现问题后,需要我们回来修改代码...

七七的博客 405

Android Studio try catch快捷生成后仍然throw new RuntimeException 的问题

Android Studio try catch快捷生成后仍然throw new RuntimeException

u012954039的博客 402

JAVA异常处理、自定义异常、throws关键字与throw关键字、运行时异常

package YH; public class Thundering { public static void main(String[] args) { try { String str="lili"; System.out.println(str+"年龄是:"); int age=Integer.parseInt("20L"); System.out.println(ag...

Dmeo_meng的博客 729
上一篇: 为什么在代码中不建议直接抛RuntimeException呢?
下一篇: Oracle中Merge into用法总结
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值