2021-05-12捕获和抛出异常

本文详细介绍了Java中的异常处理机制,包括如何使用try-catch-finally结构来捕获和处理异常,以及throw和throws关键字的应用场景。通过具体示例演示了不同类型的异常如何被捕获,并解释了异常处理的重要性和最佳实践。

异常处理机制

  1. 抛出异常
  2. 捕获异常
  3. 异常处理的五个关键字:try,catch,finally,throw,throws
package com.exception;

public class Test {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;
        //快速生成捕获抛出异常代码:Ctrl+Alt+T
        //假设要捕获多个异常,需要从小到大去捕获
        try{//try监控区域

            //主动抛出异常 throw(throw跟throws完全不一样,注意区分)
            //主动抛出异常一般在方法中使用,假设在这个方法中处理不了这个异常,可以在方法中抛出异常
            if(b==0){
                throw new ArithmeticException();
            }

            System.out.println(a/b);

        } catch /*catch捕获异常*/(ArithmeticException e)/*捕捉算术异常*/ {//catch里面的参数就是想要捕获的异常类型,最高是Throwable

            System.out.println("程序出现异常,变量b不能为0");
            e.printStackTrace();//打印错误信息

        } catch(Error e){

            System.out.println("Error");

        }catch(Exception e){

            System.out.println("Exception");

        }catch(Throwable e){

            System.out.println("Throwable");

        }finally/*处理善后工作*/{
            System.out.println("finally");
        }
        //可以不要finally
        //在IO,资源中需要关闭操作要在finally中处理
    }
    public void a(){
        b();
    }
    public void b(){
        a();
    }

}

Java编程中,异常处理是一个非常重要的概念。异常处理机制可以帮助我们更好地管理处理程序运行过程中可能出现的错误情况。Java提供了多种异常处理机制,其中之一就是使用`throws`关键字来抛出异常。 ### 使用`throws`抛出异常 `throws`关键字用于声明一个方法可能会抛出异常类型。它通常用于方法签名中,告知调用者该方法可能会抛出哪些异常。使用`throws`声明异常的方法并不需要在该方法内部处理这些异常,而是将异常抛给调用者处理。 #### 示例代码: ```java public class ExceptionExample { public static void main(String[] args) { try { methodThatThrowsException(); } catch (Exception e) { System.out.println("Exception caught: " + e.getMessage()); } } public static void methodThatThrowsException() throws Exception { throw new Exception("An exception occurred"); } } ``` 在上述代码中,`methodThatThrowsException`方法使用`throws`声明它可能会抛出`Exception`。在`main`方法中,我们调用了这个方法,并使用`try-catch`块来捕获处理异常。 ### 捕获异常 捕获异常通常使用`try-catch`块。`try`块中包含可能抛出异常的代码,而`catch`块用于捕获并处理这些异常。 #### 示例代码: ```java public class ExceptionExample { public static void main(String[] args) { try { int result = divide(10, 0); System.out.println("Result: " + result); } catch (ArithmeticException e) { System.out.println("ArithmeticException caught: " + e.getMessage()); } } public static int divide(int a, int b) { return a / b; } } ``` 在上述代码中,`divide`方法在执行除法操作时可能会抛出`ArithmeticException`。在`main`方法中,我们使用`try-catch`块来捕获并处理这个异常。 ### 总结 - `throws`关键字用于声明方法可能会抛出异常- `try-catch`块用于捕获并处理异常。 通过使用`throws``try-catch`,我们可以更好地管理处理程序中的异常,提高代码的健壮性可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值