Java异常处理(简版)

一般来说,Java异常处理有两种:

1.JVM默认的异常处理方式

2.开发中的异常处理方式

JVM默认的异常处理方式

定义:在控制台打印错误信息,并终止程序。(可能会造成数据丢失)

开发中的异常处理方式(两种)

  • try...catch(finally):捕获,自己处理
  • throws:抛出,交给调用者

示例:

1.JVM默认的异常处理方式

public static void main(String[] args) {
        int a = 10/0;
        System.out.println(a);       
        System.out.println("结束!");        
    }

 运行结果:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at test.Tets01.main(Tets01.java:8)

2.1开发中的异常处理方式 try...catch(finally)

public static void main(String[] args) {

        try{
            
            int a = 10/0;
            System.out.println(a);
            
        }
        catch(Exception e)
        {
            System.out.println("出现除以零的情况");
            
        }
        finally
        {
            System.out.println("哈哈哈哈");
        }
        
        System.out.println("结束!");

    }

运行结果:

出现除以零的情况
哈哈哈哈
结束!

有无finally的区别:

public static void main(String[] args) {
   
        try{
            
            int a = 10/0;
            System.out.println(a);
            
        }
        catch(Exception e)
        {
            System.out.println("出现除以零的情况");
            return;//跳出当前,结束该方法。
        }
        finally
        {
            System.out.println("哈哈哈哈");
        }
        
        System.out.println("结束!");
        
    }

运行结果:

出现除以零的情况
哈哈哈哈

2.2开发中的异常处理方式 throws

抛出异常交给调用者处理

两种抛出异常情况:

2.2.1调用者拿到异常,抛给上层

public static void main(String[] args) throws Exception{
    
    show();

    }
    
    public static void show() throws Exception
    {
        int a = 10/0;
        System.out.println(a);
        
    }

运行结果:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at test.Test02.show(Test02.java:21)
    at test.Test02.main(Test02.java:8)

2.2.2调用者自己处理

public static void main(String[] args){

        
        try {
            show();
        } catch (Exception e) {
            System.out.println("我在catch内。");
        }
        System.out.println("结束!");
        

    }
    
    public static void show() throws Exception
    {
        int a = 10/0;
        System.out.println(a);
        
    }

运行结果:

我在catch内。
结束!
posted @ 2021-01-07 13:44  栎眠尔  阅读(97)  评论(0编辑  收藏  举报