Java之try-catch和throws的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38225558/article/details/82110787

 try-catch和throws的区别:
    try-catch : 在当前位置处理异常
    throws    :   (语法格式:   在方法签名之后:throws 异常类型)
                    向上抛出异常,可以无限向上抛出,直到抛给main方法,main方法就抛给JVM虚拟机去解决
                    即比如在3个类中,第3个类出现异常,可向上抛给第二个类,第二个类如果不想解决,可继续抛给第一个类中去解决,然后在第一个类中(调用第三个类中方法会出现异常)==》就使用try-catch解决异常


相当于throws可以向上指定抛到某一个类里面去集合解决异常(使用try-catch解决异常),而try-catch是直接处理异常

注意:throws后可以同时抛出多个异常类型  ex:public void 方法名() throws ArithmeticException,NumberFormatException{}

throws 原理:有throws的方法的是所有代码中 , 某行代码创建了异常对象,直接去跟throws后的异常类型匹配,如果匹配不上,则自动匹配下一个,匹配上为止。  
          i: 如果能匹配上则向上抛出成功,由调用方法的地方来处理
         ii: 如果所有的都匹配不上,则抛出失败,由jvm默认处理

ex:

public class Demo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			getResult();
			System.out.println("try......");
		} catch (ArithmeticException e) {
			// TODO: handle exception
			System.out.println("catch......");
		}
		
	}
	public static void getResult() throws ArithmeticException{  //把创建的异常对象抛给调用此方法的地方
		System.out.println(1/0);  //创建一个ArithmeticException类型的异常对象
		System.out.println("========"); //如果上一行代码创建了异常对象并向上抛出了。此行代码不会执行
	}
}

运行结果图:

猜你喜欢

转载自blog.csdn.net/qq_38225558/article/details/82110787
今日推荐