【异常的基本概念】_异常的基本概念笔记
2014-10-01 22:29
148 查看
【异常的基本概念】_异常的基本概念笔记
分类: Java【异常的基本概念】_异常的基本概念笔记
了解异常的基本概念
掌握异常的基本处理格式
掌握异常类的继承结构
掌握java的异常处理机制
异常:
异常是导致程序中断运行的一种指令流.如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失。
3.1为什么需要异常处理?
[java] view
plaincopyprint?
public class ExceptionDemo01{
public static void main(String args[]){
System.out.println("*****计算开始******");
int i = 10;
int j = 0;
int temp = i/j; //此处产生了异常
System.out.println("两个数字相除的结果:"+temp);
System.out.println("*****计算结束****");
}
}
一旦产生异常之后,异常之后语句并不会执行,而是直接结束程序,并将错误报告给用户。
在计算机的发展史上有两大杀手:
1.断电
2.被除数为0
3.2处理异常
如果要想处理异常,则必须掌握异常的处理格式。
try{
}catch(){
}finally{
}
对之前的异常进行捕捉
[java] view
plaincopyprint?
public class ExceptionDemo02{
public static void main(String args[]){
System.out.println("*******计算开始********");
int i = 10;
int j = 0;
try{
int temp = i/j; //此处产生异常
System.out.println("两个数相除的结果:"+temp);
System.out.println("------------------")
}catch(ArithmeticException e){
e.printlnStackTrace();
}finally{
System.out.println("不管是否出现异常,都执行此代码");
}
System.out.println("*****计算结束*******");
}
}
此时的数据实际上是交给用户输入的,那么既然是用户输入,就有可能输入不正确,实际上以上代码存在三个问题:
1.如果没有输入参数或者输入参数不够,则会出现问题:
java.lang.ArrayIndexOfBoundsException
2.如果现在输入参数不是数字而字母。
java.lang.NumberFormatException:For input string:"a"
3.算数异常,如果被除数为零。
所以上程序实际产生了三个异常:
数组超出绑定:ArrayIndexOutOfBoundsException
数字格式化异常:NumberFormatException
算术异常:ArithmeticException
如果要想保证程序的执行正确,则必须同时对三个异常进行处理,所以此时就需要三个catch语句
[java] view
plaincopyprint?
public class ExceptionDemo05{
public static void main(String[] args){
System.out.println("*****计算开始******");
int i = 0;
int j = 0;
try{
String str1 = args[0];
String str2 = args[1];
i = Integer.parseInt(str1);
j = Integer.parseInt(str2);
int temp = i/j; //此处产生异常
System.out.println("两个数字相除的结果:"+temp);
System.out.println("-----------------------");
}catch(ArithmeticException e){
e.printStackTrace();
}catch(NumberFormatException e){
e.printStackTrace();
}catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
System.out.println("*****计算结束******");
}
}
以上一个小小程序都要处理三个异常,当然,此程序还有可能有其他异常,那么这样一来,异常的处理就很麻烦。
3.3异常的继承结构
在整个java的异常结构中,实际上有以下两个最常用的类,Exception、Error,这两个类都是Throwable的子类
1.Exception:一般表示的是程序中出现的问题,可以直接使用try....catch处理
2.Error:一般指的是JVM错误,程序中无法处理。
一般情况下开发者都比较习惯于将Error和Exception统一称为异常,而之前处理的若干异常,都是Exception的子类。
注意:
一般在输出异常信息的时候,可以直接使用System.out.println()打印异常对象
也可以通过Exception提供的一个方法:public void printStackTrace()
3.4异常的处理机制:
try{
}catch(ArithmeticException e){
}finally{
}
当所有的异常处理的方式是一样的时候就可以直接使用Exception进行捕获,当然,在一个比较细致的开发中是不建议这样使用的,所有的异常最好分别捕获。
问题:
既然捕获Exception是最方便的,那么直接捕获Throwable可以不可以?
首先这样的做法是可以的,但是正常的开发人员是不会这样去做的,因为程序的try中永远只会抛出Exception的子类,而Throwable中不光有Exception还有Error。
相关文章推荐
- 【异常的基本概念】_异常的其他概念笔记`
- 【异常的基本概念】_异常的其他概念笔记`
- 【异常的基本概念】_异常的基本概念笔记
- [WCF 学习笔记] 1. 基本概念
- 优秀课件笔记之计算机的基本概念和分类
- 孙鑫VC学习笔记:第十四讲 网络的基本概念
- 孙鑫VC学习笔记:第十四讲 网络的基本概念
- 孙鑫VC学习笔记:第十五讲 进程和线程基本概念
- 浙大面向对象程序设计笔记.类与对象的基本概念
- SOA学习笔记(一)----SOA基本概念
- Windows GDI学习笔记(1)——基本概念
- Vega Prime自学笔记(1)基本概念
- oracle基本概念笔记
- 孙鑫VC学习笔记:第十四讲 (一) 网络的基本概念
- [WCF 学习笔记] 1. 基本概念
- Symbian学习笔记(2):基本概念
- 学习笔记-PPP and PPPoE基本概念
- OpenLDAP学习笔记2——LDAP基本概念
- linux笔记09(linux的基本概念)
- [WCF 学习笔记] 1. 基本概念