Java异常,exception 和错误 error异常的5个关键词try catch finally throw thorws.

捕获异常可以让即是程序出现错误也不会终止运行,还可以处理异常.

一、异常处理框架.

在这里插入图片描述

二、异常处理的5个关键词.

1.try 尝试,

2.catch 捕获异常.

3.finally :无论是否异常都会执行.

4.throw :用于方法中抛出异常,

5.throws: 用于方法修饰,抛出异常.

三、实例

1.try catch finally 组合使用.

package opp.Exception异常;

public class Demo {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;
        try {
            System.out.println(a/b);
        } catch (ArithmeticException e) {
            System.out.println("a/b 出现异常ArithmeticException捕获成功!");
            e.printStackTrace();
        }finally {
            System.out.println("finally run successfully.经常用于一些异常的处理和流的关闭.");
        }
    }
}


输出
a/b 出现异常捕获成功!
finally run successfully.经常用于一些异常的处理和流的关闭.
java.lang.ArithmeticException: / by zero
	at opp.Exception异常.Demo.main(Demo.java:8)

try 后面为需要捕捉异常的代码块
catch()中为需要捕获的异常类型
catch(){// 。。。} 花括号中为捕获异常成功后的执行语句
finally{} 中为无论如何都会执行的finally语句通常用于关闭流(IO 资源等.)

2.多重catch语句例子

package opp.Exception异常;

public class Demo2多重catch {
    public static void main(String[] args) {
        try {
            new Demo2多重catch().a();
        } catch (Error e) {
            System.out.println("第一个catch捕获Error成功");
        }catch (Exception e){
            System.out.println("第二个catch捕获Exception成功");
        }catch (Throwable e){
            System.out.println("第三个catch捕获最大的异常类Throwable 成功");
        }finally {
            System.out.println("finally 语句运行成功");
        }

    }
    public void a(){
        b();
    }
    public void b(){
        a();
    }
}
输出结果
第一个catch捕获Error成功
finally 语句运行成功

结论:

1.捕获的类型比较大的放到后面.
2…

===============================

3. 实例:throw,在方法中主动抛出异常.

package opp.Exception异常;

public class Throw方法中主动抛出异常 {
    public static void main(String[] args) {
        new Throw方法中主动抛出异常().devide(1,0);
    }
    private void devide(int a ,int b){
        if(b == 0){
            System.out.println("抛出异常成功!");
            throw new ArithmeticException();//抛出数据数据异常.
        }
    }
}
输出结果:
抛出异常成功!
Exception in thread "main" java.lang.ArithmeticException
	at opp.Exception异常.Throw方法中主动抛出异常.devide(Throw方法中主动抛出异常.java:10)
	at opp.Exception异常.Throw方法中主动抛出异常.main(Throw方法中主动抛出异常.java:5)

4. throws == try+catch?

处理异常有 抛出throws 和捕获try ,catch.
抛出经常用于方法中,把异常抛到上一级,让调用这个方法的位置来try catch.

发布了56 篇原创文章 · 获赞 2 · 访问量 482

猜你喜欢

转载自blog.csdn.net/jarvan5/article/details/105563339
今日推荐