您的位置:首页 > 编程语言 > Java开发

Java中的异常及异常处理

2017-04-05 08:05 141 查看
1.常见的异常类型:

Exception:异常层次结构的根类;

ArithmeticException:算数错误形式,如零做除数;

ArrayIndexOutOfBoundsException:数组下标越界;

NullPointerException:尝试访问null对象成员;

ClassNotFoundException:不能加载所需的类;

InputMismatchException:欲得到的数据类型与实际输入的类型不匹配;

IllegalArgumentException:方法接收到非法参数;

ClassCastException:对象强制类型转换出错;

NumberFormatException:数字格式转换异常,如把“abc”转换成数字;

2.Java中的异常处理是通过5个关键字来实现的:try、catch、finally、throw、throws。

3.try-catch-finally结构

语法:try
{

//代码块

 
  } catch (异常类型){

//代码块

 
  } finally {

 
//代码块

 
  }

*注意:

>try-catch-finally结构中
try 块是必须的,catch 和finally 块均为可选,但两者至少需出现其中之一。即使在 try 块和 catch 块

  中存在
return 语句,finally 仍然会被执行,执行顺序:执行 try 块或 catch 块中的 return 之前的语句,再执行 finally 快中的
  语句,最后执行 try 块或 catch 块中的 return 语句退出。

>finally
块中语句唯一不执行的情况:在异常处理代码中执行System.exit(1);将退出Java虚拟机。

>可以在一个
try 语句块后面跟多个 catch 语句块,分别处理不同的异常。但排列顺序必须是从特殊到一般,最后一个一般
   为Exception类。

例如:try
{

//代码块

 
  } catch(InputMismatchException){

//代码块

 
  } catch(ArithmeticException){

//代码块

 
  } catch(Exception  e){

//代码块

 
  } finally {

//代码块

 
  }

4.throw
和throws 的区别:

》作用不同:throw
用于在程序中抛出异常;throws 用于声明在该方法内抛出了一场。

》使用的位置不同:throw
位于方法体内部,可以作为单独语句使用;throws必须跟在方法参数列表的后面,不能单独使用。

》内容不同:throw
抛出一个异常对象,而且只能是一个;throws后面跟异常类,而且可以跟多个异常类。

例:public
void setSex(String sex) throws Exception {
//用 throws 声明异常

if("男".equals(sex)
|| "女".equals(sex) ) {

this.sex
= sex;

}
else {

throw
new Exception ("性别必须是\"男\"或者\"女\"!"); //用throw抛出异常

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: