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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python lambda拉姆达表达式「建议收藏」

    python lambda拉姆达表达式「建议收藏」(lambdax:x+1)(50)51addone=lambdax:x+1addone(50)51sum=lambdax,y:x+ysum(5,9)14

    2026年1月23日
    5
  • netty权威指南第二版源码 百度云_dubbo源码视频

    netty权威指南第二版源码 百度云_dubbo源码视频netty权威指南第二版源码 https://github.com/wuyinxian124/nettybook2

    2022年10月2日
    3
  • 云铺购代刷网系统全开源可运营程序搭建「建议收藏」

    云铺购代刷网系统全开源可运营程序搭建「建议收藏」云铺购最新代刷网系统无后门全开源可运营版本控制端功能支持一键通秒搭建代刷网站点,一键新增修改站点版本,支持QQ一键通登录自主添加站点域名管理站点,可配置后台安全访问域名白名单IP(实时保护)控制端支持一键备份旗下所有站点数据,共享数据版大大减少服务器压力主站点功能前后台支持QQ一键通登录,前台风格8套内页风格3套,免密支付,订单代付自定义网站公告导航,等级配置,邮箱配置,密匙配置,站点一键通装修支持一键通秒对接云铺购系统,玖伍系统,亿乐系统,各大卡盟系统,网商系统等对接商

    2022年8月12日
    7
  • c++链式前向星_链式基数排序图解

    c++链式前向星_链式基数排序图解图的存储方法很多,最常见的除了邻接矩阵、邻接表和边集数组外,还有链式前向星。链式前向星是一种静态链表存储,用边集数组和邻接表相结合,可以快速访问一个顶点的所有邻接点,在算法竞赛中广泛应用。链式前向星存储包括两种结构:边集数组:edge[],edge[i]表示第i条边; 头结点数组:head[],head[i]存以i为起点的第一条边的下标(在edge[]中的下标)structnode{intto,next,w;}edge[maxe];//边集数组,边数一般要设置比ma…

    2025年7月17日
    3
  • fopen函数打开文件失败原因_为什么打开文件失败

    fopen函数打开文件失败原因_为什么打开文件失败大家好,我是疯狂的比特,一个每天在互联网上种菜和砍柴的程序员今天给大家分享一个C语言初学者常见的一个问题。问题经常有人问我,我的C语言代码好好的,怎么就打开文件失败了呢?我们先来看看代码吧#include<stdio.h>#include<stdlib.h>intmain(){ FILE*pfRead=fopen(“test.txt”,”r”); if(pfRead==NULL) { printf(“打开文件test.txt失败啦\

    2022年10月14日
    4
  • 用树莓派做一个人脸识别开锁应用「建议收藏」

    用树莓派做一个人脸识别开锁应用「建议收藏」作者:eckygao,腾讯CSIG云产品部1.案例概述1.1背景实现一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。总的来说,需求描述简单,但由于约束比较多,在架构与选型上…

    2022年5月30日
    33

发表回复

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

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