java程序员修炼之道之异常的处理
2013-03-23 16:19
381 查看
java异常的处理
1,Java异常的概念:
Java的异常是java提供的用于处理程序中的错误的一种机制。
所谓的错误就是指在程序运行的过程中发生的一些异常的事件。
2,java异常的分类:
Exception
异常层次结构的根类;
ArithmeticException
算术错误形式,比如除数为0;
ArrayIndexOutOfBoundsException
数组下标越界;
NullPointerException
空指针异常;
ClassNotFoundException
不能加载所需的类;
InputMismatchException
想得到的数据类型和实际输入的类型不匹配;
IllegalArgumentException
方法接收非法的参数;
ClassCastException
对象强制类型转换错误;
NumberFormatException
数字格式转换异常,比如把“abc”转换成数字;
3,异常的处理:
①:Try-catch块:
→如果try块中所有的语句都正常的执行完毕,不会发生异常。那么catch中的所
有语句都不会执行。
→如果在try语句块在执行的过程当中碰到异常,而抛出的异常在catch块没有声
明,那么程序立刻退出。
②:try-catch-finally:
→try-catch-finally结构中try块是必须的。Catch和finally块是可选的,但是两者至
少要出现一个。
Finally块中语句不执行的唯一情况就是:在异常的代码中执行System.exit(1);直接
退出java虚拟机。
4,声明异常--throws
publicclassThrows
{
publicstatic
voidmain(String[] args) {
try{
method();
}catch(Exception e) {
System.err.println("出现错误:被除数和除数必须是整数,"+"除数不能为0");
}
}
publicstatic
voidmethod()
throwsException{
Scannerinput=newScanner(System.in);
System.out.println("请输入被除数:");
intnum1=input.nextInt();
System.out.println("请输入除数:");
intnum2=input.nextInt();
System.out.println(String.format("%d/
%d = %d", num1,num2,num1/num2));
}
}
5,抛出异常-throw
在java语言中,可以使用throw关键字来自行抛出异常。
publicclassPerson
{
privateString
sex="男";//设置性别
publicvoidsetSex(String
sex) throwsException{
if(sex.equals("男")||
sex.equals("女")){
this.sex=sex;
}else{
thrownewException("性别只能是男或者女!");
}
}
/**
*
打印出基本信息
*/
publicvoidprint(){
System.out.println(this.sex);
}
}
publicclass
Test{
publicstatic
voidmain(String[] args) {
Personp=newPerson();
try{
p.setSex("x");
p.print();
}catch(Exception e) {
System.out.println(e);
}
}
}
6,java异常的体系结构:
①,Throwable类:所有的异常类型都是Throwable的子类,它派生出两个子类:Error
和Exception;
②error类:表示仅仅靠程序的本身无法恢复的严重错误。
③Exception类:由java应用程序抛出和处理的非严重性的错误,可以通过程序本身恢
复这种错误。
④编译时异常:表示在写程序代码的时候语法错误,java编译不通过。
⑤运行时异常:RuntimeException表示程序编译通过,但是在程序运行时出现的异常。
1,Java异常的概念:
Java的异常是java提供的用于处理程序中的错误的一种机制。
所谓的错误就是指在程序运行的过程中发生的一些异常的事件。
2,java异常的分类:
Exception
异常层次结构的根类;
ArithmeticException
算术错误形式,比如除数为0;
ArrayIndexOutOfBoundsException
数组下标越界;
NullPointerException
空指针异常;
ClassNotFoundException
不能加载所需的类;
InputMismatchException
想得到的数据类型和实际输入的类型不匹配;
IllegalArgumentException
方法接收非法的参数;
ClassCastException
对象强制类型转换错误;
NumberFormatException
数字格式转换异常,比如把“abc”转换成数字;
3,异常的处理:
①:Try-catch块:
→如果try块中所有的语句都正常的执行完毕,不会发生异常。那么catch中的所
有语句都不会执行。
→如果在try语句块在执行的过程当中碰到异常,而抛出的异常在catch块没有声
明,那么程序立刻退出。
②:try-catch-finally:
→try-catch-finally结构中try块是必须的。Catch和finally块是可选的,但是两者至
少要出现一个。
Finally块中语句不执行的唯一情况就是:在异常的代码中执行System.exit(1);直接
退出java虚拟机。
4,声明异常--throws
publicclassThrows
{
publicstatic
voidmain(String[] args) {
try{
method();
}catch(Exception e) {
System.err.println("出现错误:被除数和除数必须是整数,"+"除数不能为0");
}
}
publicstatic
voidmethod()
throwsException{
Scannerinput=newScanner(System.in);
System.out.println("请输入被除数:");
intnum1=input.nextInt();
System.out.println("请输入除数:");
intnum2=input.nextInt();
System.out.println(String.format("%d/
%d = %d", num1,num2,num1/num2));
}
}
5,抛出异常-throw
在java语言中,可以使用throw关键字来自行抛出异常。
publicclassPerson
{
privateString
sex="男";//设置性别
publicvoidsetSex(String
sex) throwsException{
if(sex.equals("男")||
sex.equals("女")){
this.sex=sex;
}else{
thrownewException("性别只能是男或者女!");
}
}
/**
*
打印出基本信息
*/
publicvoidprint(){
System.out.println(this.sex);
}
}
publicclass
Test{
publicstatic
voidmain(String[] args) {
Personp=newPerson();
try{
p.setSex("x");
p.print();
}catch(Exception e) {
System.out.println(e);
}
}
}
6,java异常的体系结构:
①,Throwable类:所有的异常类型都是Throwable的子类,它派生出两个子类:Error
和Exception;
②error类:表示仅仅靠程序的本身无法恢复的严重错误。
③Exception类:由java应用程序抛出和处理的非严重性的错误,可以通过程序本身恢
复这种错误。
④编译时异常:表示在写程序代码的时候语法错误,java编译不通过。
⑤运行时异常:RuntimeException表示程序编译通过,但是在程序运行时出现的异常。
相关文章推荐
- 【Python】Java程序员学习Python(六)— 流程控制、异常处理
- Java程序员从笨鸟到菜鸟之(十二)java异常处理机制
- Java程序员从笨鸟到菜鸟之(十二)java异常处理机制
- Java程序员从笨鸟到菜鸟之(十二)java异常处理机制
- Java程序员从笨鸟到菜鸟之(十二)java异常处理机制
- Java程序员不该有的6种陋习----异常处理反例
- Java程序员从笨鸟到菜鸟之(十二)java异常处理机制
- Java程序员从笨鸟到菜鸟之(十二)java异常处理机制
- JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?在 try 块中可以抛出异常吗?
- Java的异常处理
- Java 中的异常和处理详解
- Java异常处理机制的详细讲解和使用技巧
- Java异常处理的陋习展播
- 使用Spring实现异常统一处理【三】--java.lang.IllegalStateException: STREAM问题的解决
- java异常处理机制
- java IO异常处理方式
- java异常处理机制
- Java异常处理机制
- Java程序员修炼之道 之 Logging(2/3) - 怎么写Log
- java程序员修炼之道之集合框架