「java捕获问题」如何理解Java中的异常捕捉?实现代码是怎么样的?

博主:adminadmin 2022-11-30 01:16:05 52

本篇文章给大家谈谈java捕获问题,以及如何理解Java中的异常捕捉?实现代码是怎么样的?对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java有什么方法可以捕获程序异

1. try-catch语句

在Java中,异常通过try-catch语句捕获。其一般语法形式为

try { 

  // 可能会发生异常的程序代码 

} catch (Type1 id1){ 

  // 捕获并处置try抛出的异常类型Type1 

catch (Type2 id2){ 

   //捕获并处置try抛出的异常类型Type2 

}

关键词try后的一对大括号将一块可能发生异常的代码包起来,称为监控区域。Java方法在运行过程中出现异常,则创建异常对象。将异常抛出监控区域之 外,由Java运行时系统试图寻找匹配的catch子句以捕获异常。若有匹配的catch子句,则运行其异常处理代码,try-catch语句结束。

匹配的原则是:如果抛出的异常对象属于catch子句的异常类,或者属于该异常类的子类,则认为生成的异常对象与catch块捕获的异常类型相匹配。

例1  捕捉throw语句抛出的“除数为0”异常。

public class TestException { 

  public static void main(String[] args) { 

    int a = 6; 

    int b = 0; 

    try { // try监控区域 

         

      if (b == 0) throw new ArithmeticException(); // 通过throw语句抛出异常 

      System.out.println("a/b的值是:" + a / b); 

    } 

    catch (ArithmeticException e) { // catch捕捉异常 

      System.out.println("程序出现异常,变量b不能为0。"); 

    } 

    System.out.println("程序正常结束。"); 

  } 

}

运行结果:

程序出现异常,变量b不能为0。

程序正常结束。

例1  在try监控区域通过if语句进行判断,当“除数为0”的错误条件成立时引发ArithmeticException异常,创建 ArithmeticException异常对象,并由throw语句将异常抛给Java运行时系统,由系统寻找匹配的异常处理器catch并运行相应异 常处理代码,打印输出“程序出现异常,变量b不能为0。”try-catch语句结束,继续程序流程。

事实上,“除数为0”等ArithmeticException,是RuntimException的子类。而运行时异常将由运行时系统自动抛出,不需要使用throw语句。

例2  捕捉运行时系统自动抛出“除数为0”引发的ArithmeticException异常。

public static void main(String[] args) { 

    int a = 6; 

    int b = 0; 

    try { 

      System.out.println("a/b的值是:" + a / b); 

    } catch (ArithmeticException e) { 

      System.out.println("程序出现异常,变量b不能为0。"); 

    } 

    System.out.println("程序正常结束。"); 

  } 

}

2. try-catch-finally语句

try-catch语句还可以包括第三部分,就是finally子句。它表示无论是否出现异常,都应当执行的内容。try-catch-finally语句的一般语法形式为:

try { 

  // 可能会发生异常的程序代码 

} catch (Type1 id1) { 

  // 捕获并处理try抛出的异常类型Type1 

} catch (Type2 id2) { 

  // 捕获并处理try抛出的异常类型Type2 

} finally { 

  // 无论是否发生异常,都将执行的语句块 

}

「java捕获问题」如何理解Java中的异常捕捉?实现代码是怎么样的?

java中具体怎样捕获异常?

比如在dao层类中写了一个可能会执行失败的方法:\x0d\x0a捕获异常的代码如下: \x0d\x0apublic Map remove(int id) { \x0d\x0a Map map = new HashMap(); \x0d\x0a try { \x0d\x0a userGroupDao.remove(id); \x0d\x0a map.put("isSuccess", true); \x0d\x0a } catch (Exception e) { \x0d\x0a map.put("isSuccess", false); \x0d\x0a map.put("errorMsg", e.getMessage()); \x0d\x0a } \x0d\x0a return map; \x0d\x0a}

java异常的捕获

首先自定义一个异常类

public class ActionException extends Exception{

public String returnMessage;

public ActionException(String returnMessage){

this.returnMessage = returnMessage;

}

public String getReturnMessage(){

return this.returnMessage;

}

代码中如果用到这个自定义的异常类,这里的代码只是做了个演示

private void validate(int a,int b)throws ActionException{

if(ab){

throw new ActionException("a b");

}

if(ab){

throw new ActionException("a b");

}

}

业务逻辑代码中

public String process(){

try{

validate(a,b);

}catch(ActionException ae){

System.out.println(ae.getReturnMessage());

}

}

关于java捕获问题和如何理解Java中的异常捕捉?实现代码是怎么样的?的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。