java异常处理(java异常处理适用于方法检查到一个错误)

  本篇文章为你整理了java异常处理(java异常处理适用于方法检查到一个错误)的详细内容,包含有java异常处理机制 java异常处理适用于方法检查到一个错误 java异常处理的五个关键字 java异常处理心得体会 java异常处理,希望能帮助你了解 java异常处理。

  异常处理的五大关键字:try,catch,finally,throw,throws

  目录捕获和抛出异常1.捕获异常2.抛出异常throw与throws3.两种处理方式的区别4.自定义异常如何自定义异常:自定义异常在实际应用中的经验总结

  1.捕获异常

  用法:

  ​ try{可能会出现异常的代码

  ​ } catch(Exception e)//catch后面跟想要捕获的异常类型

  ​ {异常的处理逻辑}

  idea快捷键:ctrl+alt+t

  eclipse快捷键alt+shift+z

  代码示例:

  

public class Test1 {

 

   public static void main(String[] args) {

   int a=1;

   int b=0;

   try {

   //快捷键ctrl+ait+t选择try

   System.out.println(a/b);

   } catch (ArithmeticException e) {

   System.out.println("算术异常");;

   } finally {

   System.out.println("无论程序是否捕获到异常都会被执行");

  

 

  输出:

  

算术异常

 

  无论程序是否捕获到异常都会被执行

  

 

  2.抛出异常

  ​ 通过throws关键字声明抛出这个异常,交给方法的调用者去处理,在这里main方法的调用者是JVM,即交给JVM去处理。

  throw与throws

  throws: 跟在方法声明后面,后面跟的是异常类名
 

  throw: 用在方法体内,后面跟的是异常类对象名

  throws: throws表示有出现异常的可能性,并不一定出现这些异常
 

  throw: throw则是抛出了异常,执行throw一定出现了某种异常

  throws: 表示抛出异常,由该方法的调用者来处理
 

  throw: 表示抛出异常,由该方法体内的语句来处理

  throws:后面可以跟多个异常。用逗号(,)隔开
 

  throw:只能抛出一个异常对象名

  代码示例:

  

public class Demo02 {

 

   //throws后面可以跟多个异常。用逗号(,)隔开

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

   Demo02 d=new Demo02();

   d.division(5.0,0.0);

   public void division(double x,double y) throws ArithmeticException{//throws后面跟异常类

   double num=x/y;

   if (y==0) {

   throw new ArithmeticException("算术异常");//后面跟异常对象名

   } else {

   System.out.println(num);

  

 

  输出:

  

Exception in thread "main" java.lang.ArithmeticException: 算术异常

 

   at com.exception.Demo02.division(Demo02.java:11)

   at com.exception.Demo02.main(Demo02.java:6)

  

 

  可以看到当if成立时,会抛出异常,也就是throw才会执行。而当没异常的时候则不会执行!

  3.两种处理方式的区别

  抛出异常:如果程序出现了异常,没有办法将具体的异常打印出来,不做任何处理;程序中断。

  捕获异常:如果程序出现了异常,就能够详细的打印是什么原因导致了异常并且能够做出相应的处理,能够显示详细的日志,程序不中断。

  
在java中除了,java中给我们定义的异常之外,我们还可以自定义异常。

  如何自定义异常:

  在进行程序开发的过程中,自定义异常遵循以下四个步骤:

  1.首先创建自定义异常类,语法格式:自定义异常类名 extends Exception。
 

  2.在方法中通过关键字throw抛出异常对象。
 

  3.若是在当前抛出异常的方法中处理异常,可以用try-catch语句捕获并处理;若不是,在方法的声明处通过关键字throws指明要抛出给方法调用的异常。
 

  4.在出现异常方法的调用中捕获并理异常。

  eg:定义一个大于10就会从抛出的异常

  

//自定义异常类

 

  public class CustomizeException extends Exception{

   private int a;

   public CustomizeException(int a) {

   this.a = a;

   //toString:异常的打印信息

   @Override

   public String toString() {

   return "CustomizeException{"+a+};

  

 

  然后书写一个测试类,里面放可能会存在异常的方法

  

package com.exception;

 

  public class TestCustomizeException {

   //定义一个可能会存在异常的方法

   static void test(int a) throws CustomizeException {

   System.out.println("传递的参数为"+a);

   if (a 10){

   throw new CustomizeException(a);

   System.out.println("ok");

   public static void main(String[] args) {

   try {

   test(11);

   } catch (CustomizeException e) {

   System.out.println("CustomizeException= "+e);;

  

 

  输出:

  

传递的参数为11

 

  CustomizeException= CustomizeException{11}

  

 

  这就是自定义异常

  自定义异常在实际应用中的经验总结

  在处理运行时异常的时候,采用逻辑去合理规避同同时辅助try-catch处理

  在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常

  对于不确定的代码,也可以加上try-catch处理潜在的异常

  尽量去处理异常,而不是只调用PrintStackTrace()去打印输出

  具体如何处理异常,要根据不同的业务需求和异常类型去决定

  尽量添加finally语句块去释放占用的资源

  以上就是java异常处理(java异常处理适用于方法检查到一个错误)的详细内容,想要了解更多 java异常处理的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: