java try catch 吃掉异常与跑出异常的区别,以及在项目中是否改抛出异常的理解

java try catch 吃掉异常与跑出异常的区别,以及在项目中是否改抛出异常的理解

package com.liuxin.file;

public class ExceptionTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	TryCatch tryCatch =new TryCatch();
	/*下面这个方法中有try catch。但是因为在该方法中已经被try Catch吃掉了,所以在这里就不需要处理了。
	遇到错误会在该方法中将错误处理成我们想要的样子,比如打印到控制台,日志,方便我们知道错误原因,方便修改
	*/
	tryCatch.worryMethod();
	
	
	/**
	 * 下面这个方法要处理来自调用方法worryMethod()方法中抛来的错误,而上面的方法就不需要,因为它的内部方法已经处理过了这就是二者的区别。
	 * 
	 * 总结:现实开发中,我们经常会遇到,别人说我不需要你抛来的异常,而是错误码和错误信息,方便他们判断调用我们的工程时的入参哪里不符合我们的规范。
	 * 当然谁处理异常就要麻烦一点,要罗列可能存在的错误,处理过程常常是在catch中将错误封装到一个对象的字段中,而不是使用throw,处理过程比较复杂。
	 * 而别用调用你时就比较省事了,拿到你处理后的对象,判断传来的是否成功的字段,可清晰明了的知道是否调用成功,并且会根据错误信息字段知道是那个入参不对,进而修改即可。
	 * 
	 */
	ThrowTest throwTest=new ThrowTest();
	try {
		throwTest.worryMethod();
		
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	}

}
package com.liuxin.file;

public class ThrowTest {
	void worryMethod() throws Exception{
		try{
			int a = 1/0;
			System.out.println(a);
		}catch (Exception e) {
			/**
			 * throw 扔出异常,那么调用此方法的函数就要处理此方法抛出来的异常。
			 * eclipse也会自动提示开发人员调用此方法时要通过try catch 或exception两种方式处理,
			 * 这样 调用此方法的函数就必须处理
			 */
			throw new Exception(e.getMessage());//最后一行
//			System.out.println("------上面一步跑出异常后就不在往下走,也就是不会打印这一句话----");  报错了
		}
	}

}


package com.liuxin.file;


public class TryCatch {
 public void worryMethod(){
 try{
 int a = 1/0;
 }catch (Exception e){
 /*吃掉异常,将可能存在的错误处理掉,也就是将错误打印处理,让开发人员知道错误原因,方便修改
 ,这样调用此方法的类就不用再处理了*/
 System.err.println("数据结果错误!!");
 System.err.println(e.getMessage());
 } 
 System.out.println("----try catch处理可能存在的错误后,还能继续网下走!!!!");
 }


}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106270.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • top命令输出解释以及load average 详解及排查思路

    top命令输出解释以及load average 详解及排查思路昨天nagios报警warning,没来得及留下报警截图,nagios值设定的值是当1分钟多于15个进程等待,5分钟多于10个,15分钟多于5个则为warning状态当1分钟多于30个进程等待,5分钟多于25个,15分钟多于20个则为critical状态————————————————————-

    2022年7月17日
  • pychame激活码(破解版激活)[通俗易懂]

    pychame激活码(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
  • cnpm安装教程_安装命令提示符

    cnpm安装教程_安装命令提示符1、确认npm是否安装成功:win+R,输入cmd,打开命令窗口2、命令行窗口输入:node-v,显示有版本号,则安装成功3、安装cnpm:输入npminstall-gcnpm-registry=https://registry.npm.taobao.org4、安装完成后,输入cmpm-v,检查是否安装成功如果出现cnpm不是内部或者外部命令提示,请继续以下操作5、配置环境变量打开系统环境变量,增加如下配置,则修改成功回到命令行窗口输入cn..

    2022年10月16日
  • Redis 6379 被攻击

    Redis 6379 被攻击Redis6379被攻击刚开始使用redis,把端口打开了,然后没有设置密码,导致被恶意攻击,这里记录一下。[root@realguo~]#redis-cli127.0.0.1:6379>keys*1)”backup2″2)”backup1″3)”backup4″4)”backup3″127.0.0.1:6379>getbackup1″\n\n\n*/2****rootcd1-fsSLhttp://zzhreceive.anondn

    2022年5月12日
  • 【OpenCV入门教程之九】 非线性滤波专场:中值滤波、双边滤波[通俗易懂]

    正如我们上一篇文章中讲到的,线性滤波可以实现很多种不同的图像变换。然而非线性滤波,如中值滤波器和双边滤波器,有时可以达到更好的实现效果。邻域算子的其他一些例子还有对二值图像进行操作的形态学算子,用于计算距离变换和寻找连通量的半全局算子。先上一张截图:一、理论与概念讲解——从现象到本质1.1非线性滤波概述之前的那篇文章里,我们所考虑的滤波器都是线性的,即两个信号之和的响应和他们各自响应之和相等。换句话说,每个像素的输出值是一些输入像素的加权和,线性滤波器易于构造,并且易于从频率响应角度来进行分

    2022年4月9日
  • MATLAB plotyy总结「建议收藏」

    MATLAB plotyy总结「建议收藏」当需要画出2个两个不同纵坐标的图时,此时的横坐标的图是相同的,在MATLAB中这个函数叫plotyy下面列举的是一个简单的画plotyy的应用几种不同的调用格式1、plotyy(X1,Y1,X2,Y2)2、plotyy(X1,Y1,X2,Y2,function)3、plotyy(X1,Y1,X2,Y2,’function1′,’function2′)4、[AX,H1,H2]=plotyy(___)5、plotyy(AX1,___)1、plotyy(X1,Y1,X2,Y2)直接简单地画

    2022年6月16日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号