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处理异常的区别与自定义异常的主要内容,如果未能解决你的问题,请参考以下文章

try-catch和throw,throws的区别和联系

JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表啥意

try-catch和throw,throws的区别

java异常 throw和try-catch的关系

JAVA语言如何进行异常处理,关键字throws,throw,try,catch,finally分别代表啥意义在try块中抛出异常吗

JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表啥意义?