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)
上一篇 2021年7月19日 下午12:00
下一篇 2021年7月19日 下午1:00


相关推荐

  • poj 1088 记忆化搜索||动态规划

    poj 1088 记忆化搜索||动态规划poj1088    记忆化搜索也也是采用递归深搜的对数据进行搜索,但不同于直接深搜的方式,记忆化搜索是在每次搜索时将得到的结果保存下来,避免了重复计算,这就是所谓的记忆化。记忆化应该是属于动态规划。   举个例子,比如我们搜索最长最长连续增子序列,1 234567,当然这个例子比较特殊,但足以说明情况。   对于这种问题,我们可以先搜索以1开始的

    2022年7月26日
    8
  • 基于LSTM的股票预测模型_python实现_超详细

    基于LSTM的股票预测模型_python实现_超详细文章目录一、背景二、主要技术介绍1、RNN模型2、LSTM模型3、控制门工作原理四、代码实现五、案例分析六、参数设置七、结论一、背景近年来,股票预测还处于一个很热门的阶段,因为股票市场的波动十分巨大,随时可能因为一些新的政策或者其他原因,进行大幅度的波动,导致自然人股民很难对股票进行投资盈利。因此本文想利用现有的模型与算法,对股票价格进行预测,从而使自然人股民可以自己对股票进行预测。理论上,………

    2025年10月19日
    5
  • Duilib学习(一)

    #pragmaonce#includeusingnamespaceDuiLib;#ifdef_DEBUG#ifdef_UNICODE#pragmacomment(lib,&

    2021年12月18日
    97
  • Nano Banana 教程:迄今最强生图模型的28个玩法合集(飞书文档教程)

    Nano Banana 教程:迄今最强生图模型的28个玩法合集(飞书文档教程)

    2026年3月15日
    3
  • js 判断字符串中是否包含某个字符include的坑「建议收藏」

    js 判断字符串中是否包含某个字符include的坑「建议收藏」方法一indexOf()(推荐)varstr=”123″;console.log(str.indexOf(“3″)!=-1);//trueindexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回-1。方法二test()varstr=”123”;varreg=RegExp(/3/);console.log(reg.test(str));//truetest()方法用于检索字

    2022年10月6日
    8
  • 前端HTML空格转义符总结[通俗易懂]

    前端HTML空格转义符总结[通俗易懂]HTML提供了5种空格实体(spaceentity),它们拥有不同的宽度。非断行空格( )是常规空格的宽度,可运行于所有主流浏览器。其他几种空格(   ‌‍)在不同浏览器中宽度各异。 它叫不换行空格,全称No-BreakSpace,它是最常见和我们使用最多的…

    2022年10月4日
    4

发表回复

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

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