try catch和Throws处理异常的区别与自定义异常
Posted 小艾路西里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了try catch和Throws处理异常的区别与自定义异常相关的知识,希望对你有一定的参考价值。
try catch用于包含代码块,是指在当前方法中就处理异常
而Throws用于方法外部,表示将异常抛给方法的调用者,如果上层没有处理,就继续往上(上一层的调用者)抛,直到处理了异常,或者直到抛给JVM
下面用一个例子来说明区别
public class Test {
public static void main(String[] args) {
try {
test1(); //调用test1
} catch (Exception e) {
System.out.println("-----main方法使用try catch处理了异常-----");
// e.printStackTrace();
}
}
public static void test1() throws Exception {
test2(); //调用test2
}
public static void test2() throws Exception {
test3(); //调用test3
}
public static void test3() throws Exception { //将异常往调用者抛
System.out.println("-----test3"+"抛出了一个异常-----");
throw new Exception(); // 抛出一个异常
}
}
自定义异常
① 创建一个类,继承Exception类 (所有的异常类都继承自Throwable类)
public class TestException {
public static void main(String[] args) {
System.out.println(add(1.2));
}
public static int add(Object object){
if(object instanceof Integer){ // instanceof: 判断是否是该类型,这里是判断object是否是Integer类型
int num = (int) object; //将object转换成int
return ++num;
}
else {
String error="传入的参数不是整数类型";
MyException myException = new MyException(error);
try {
throw myException; // 抛出自定义异常
} catch (MyException e) {
System.out.println("抛出了自定义异常");
// e.printStackTrace();
}
return 0;
}
}
}
以上是关于try catch和Throws处理异常的区别与自定义异常的主要内容,如果未能解决你的问题,请参考以下文章
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表啥意
JAVA语言如何进行异常处理,关键字throws,throw,try,catch,finally分别代表啥意义在try块中抛出异常吗