java程序员修炼之道之异常的处理
来源:互联网 发布:面试算法100题 编辑:程序博客网 时间:2024/06/05 23:59
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 {
publicstaticvoidmain(String[] args) {
try{
method();
}catch(Exception e) {
System.err.println("出现错误:被除数和除数必须是整数,"+"除数不能为0");
}
}
publicstaticvoidmethod()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 {
privateStringsex="男";//设置性别
publicvoidsetSex(String sex) throwsException{
if(sex.equals("男")|| sex.equals("女")){
this.sex=sex;
}else{
thrownewException("性别只能是男或者女!");
}
}
/**
*打印出基本信息
*/
publicvoidprint(){
System.out.println(this.sex);
}
}
publicclass Test{
publicstaticvoidmain(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表示程序编译通过,但是在程序运行时出现的异常。
- java程序员修炼之道之异常的处理
- java程序员的修炼之道
- java程序员修炼之道
- java 程序员修炼之道
- Java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- 程序员的修炼之道
- 程序员的修炼之道
- dup,dup2
- Android SQLite 数据库
- android开发---环境、hellowolrd
- java程序员修炼之道之面向对象
- 1001×1001的螺旋中两条对角线之和是多少?
- java程序员修炼之道之异常的处理
- SQL FOREIGN KEY Constraint
- 好书搜集
- codeblocks快捷键(转载)
- /bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: 没有那个文件或目录
- 采购流程中的FI
- [C#]手把手教你打造Socket的TCP通讯连接(一)
- 常用技巧
- android:EditText属性