Java基础入门之异常的那些事儿

知新闻 2023-07-05 17:29:38
541阅读

前言

大家好,我是Java进阶者。这篇文章我们主要介绍Java基础入门之try...catch、finally、throws关键字和抛出异常知识,一起来学习下吧!

一、try...catch和finally

(一)使用多重catch 语句

1.有些时候,当单个代码段可能会引起多个异常,为了处理这种状况,可以使用两个或多个catch子句,每个子句捕获一种类型的异常。

2.使用多重catch语句格式

 
  1. try                              
  2. {  
  3. 可能发生异常的代码块;  
  4. }  
  5. catch(异常类型1  异常对象名1) 
  6. 异常处理代码块1;  
  7. }  
  8. catch(异常类型2  异常对象名2) 
  9. 异常处理代码块2;  
  10. }  
  11. … 
  12. catch(异常类型n  异常对象名n) 
  13. 异常处理代码块n;  

(二)finally关键字

1.如果我们希望有些语句无论程序是否发生异常,都要执行我们就可以使用try...catch后面加个finally关键字。

2.finally关键字的使用语法格式

 
  1. try  
  2. {  
  3. 可能发生异常的代码块;  
  4. }  
  5. catch(异常类型  异常对象名) 
  6. 异常处理代码块;  
  7. }  
  8. finally 
  9. 不管有没有产生异常都要执行的代码;  

3.try...catch后面加个finally关键字的使用例子

 
  1. public class p35 { 
  2. public static void main(String[] args) { 
  3.         // TODO Auto-generated method stub 
  4.         //定义一个try...catch语句捕获异常 
  5.         try{ 
  6.             int result=div(6,0);//调用div()方法 
  7.             System.out.println(result); 
  8.         }catch(Exception e){//捕获并处理异常 
  9.             System.out.println("捕获异常信息为"+e.getMessage()); 
  10.             return;//用于结束当前语句 
  11.         }finally{ 
  12.             System.out.println("finally代码块..."); 
  13.         } 
  14.         System.out.println("程序继续向下执行"); 
  15. //此方法实现两个整数相除 
  16.         public static int div(int a,int b){ 
  17.             int result=a/b;//定义一个int类型变量result,保存两个数相除结果 
  18.             return result;//结果返回值 
  19.         } 

运行的结果是:


从上面代码中,try的大括号里面是可能发生异常代码块,catch是捕获并处理异常,在catch代码块中加了一个return语句,主要是结束当前语句。我们发现System.out.println("程序继续向下执行")这个输出语句不被执行,然而finally关键字代码块中是被执行了,没有被return语句影响到,不管这个程序是否发生异常这个finally代码块的语句都会被执行。

二、throws关键字

1.使用throws关键字的子句标记方法的声明,表示这个方法不对产生的异常进行处理,而是向调用它的方法抛出这个异常。

2.thorws关键字抛出异常的语法格式:

 
  1. [修饰符]  返回类型 方法名(参数1,参数2,……)throws 异常列表 
  2. …… 

3.thorws关键字使用例子

 
  1. public class p35 { 
  2. public static void main(String[] args) throws Exception { 
  3.         // TODO Auto-generated method stub 
  4.             int result=div(16,2);//调用div()方法 
  5.             System.out.println(result); 
  6. //此方法实现两个整数相除,使用throws关键字声明抛出异常 
  7.         public static int div(int a,int b) throws Exception{ 
  8.             int result=a/b;//定义一个int类型变量result,保存两个数相除结果 
  9.             return result;//结果返回值 
  10.         } 

运行的结果是:


从上面代码中,在main()方法后面加throws关键字使用抛出异常,它的最终是由虚拟机来处理这个异常的。在main()方法中调用div()方法,定义实现方法两个整数相除,使用throws关键字声明抛出异常。除了已定义的异常,开发人员还可以根据情况自定义异常类,定义时只要让该类继承Exception。

三、抛出异常

1.使用throw关键字用在方法中声明抛出异常的实例对象。

2.抛出异常首先要产生异常对象,手动抛出的异常对象,一定是Throwable或其子类的实例。它的语法语句如下:

 
  1. throw 异常对象; 

3.所有的异常类都有两个构造方法,以Exception类为例,生成Exception类的异常对象可以使用下面两个构造方法之一:

 
  1. public Exception( ); 
  2. public Exception(String s ); 

四、总结

本文主要介绍了try...catch和finally、throws关键字、抛出异常。

try...catch和finally介绍了使用多重catch语句格式、finally关键字的使用语法格式,通过try...catch后面加个finally关键字例子帮助理解是如何使用的。

使用throws关键字的子句标记方法的声明,表示这个方法不对产生的异常进行处理,而是向调用它的方法抛出这个异常。抛出异常使用throw关键字用在方法中声明抛出异常的实例对象。

我是Java进阶者,希望大家通过本文的学习,对你有所帮助!

the end
免责声明:本文不代表本站的观点和立场,如有侵权请联系本站删除!本站仅提供信息存储空间服务。