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抛出异常
}
}
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抛出异常
}
}
相关文章推荐
- 关于Java异常处理的学习代码
- 突破Java异常处理规则
- Thinking in Java第三版读书笔记-第九章:异常带来处理错误
- JAVA六种异常处理的陋习
- 彻底明白JAVA的异常处理 -3
- 趣说java处理异常的方式
- Java异常处理的陋习展播
- JAVA异常机制介绍/如何正确的进行JAVA异常处理
- JAVA一般异常处理
- Java异常处理之陋习展播
- Java异常处理之陋习展播
- Java异常处理的陋习展播
- Java中的异常处理
- 关于六种Java异常处理程序的陋习
- [转载]java异常处理的陋习展播
- [原创]打破Java异常处理规则
- java异常处理
- Java异常处理之陋习展播(ZT)
- java六种异常处理的陋习
- JAVA异常机制介绍/如何正确的进行JAVA异常处理