Java异常处理

Java异常处理方式有抛出异常和使用try catch语句块捕获并处理异常这两种方式。

抛出异常

遇到异常时不进行具体处理,而是将异常抛给调用者,由调用者根据情况处理。有可能是直接捕获并处理,也有可能是继续向上层抛出异常。抛出异常有三种形式:throws、throw、系统自动抛出异常。其中,throws作用在方法上,用于定义方法可能抛出的异常;throw作用在方法内,表示明确抛出一个异常。具体的使用方法如下:

public  static  void  main(String[]  args)  {    
    String  str  =  "hello  offer";      
    int  index  =  10;      
    if  (index  >=  str.length())      {         
        //使用throw在方法内抛出异常          
        throw  new  StringIndexOutOfBoundsException();      
    }else  {          
        str.substring(0, index);    
    }
}
//使用throws在方法上抛出异常
int  div(int  a, int  b)  throws  Exception {
    return  a/b; 
}

以上代码首先验证字符串的长度,如果长度不够,则通过throw关键字在方法内抛出一个StringIndexOutOfBoundsException异常,同时定义了一个div方法,使用throws关键字在该方法上定义一个异常。

使用try catch捕获并处理异常

使用try catch捕获异常能够有针对性地处理每种可能出现的异常,并在捕获到异常后根据不同的情况做不同的处理。其使用过程比较简单:用try catch语句块将可能出现异常的代码包起来即可。具体的使用方法如下:

try  {   
    //具体的业务逻辑实现 
  }catch  (Exception  e){  
  //捕获异常并处理
}

throw和throws的区别如下:

  • 位置不同:throws作用在方法上,后面跟着的是异常的类;而throw作用在方法内,后面跟着的是异常的对象。
  • 功能不同:throws用来声明方法在运行过程中可能出现的异常,以便调用者根据不同的异常类型预先定义不同的处理方式;throw用来抛出封装了异常信息的对象,程序在执行到throw时后续的代码将不再执行,而是跳转到调用者,并将异常信息抛给调用者。也就是说,throw后面的语句块将无法被执行(finally语句块除外)。
赞(0)

评论 抢沙发

评论前必须登录!