程序异常知识点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}catch(Exception e){
System.out.println(“发生异常”);//4
}
System.out.println(“异常处理外部”);
这是发生异常的情况,在try块里顺序执行,先打出“开始”,没有异常继续执行,当执行到第2行时,因为0不能做除数,所以会发生一个算术异常。这个时候就会跳过try块里剩下的语句转去执行catch块中的内容。所以第3行就不能执行。跳到catch块中执行第4句,打出“发生异常”。执行完以后接着往下顺序执行。打出第5行“异常处理外部”。
如果仍然没有找到,那么系统将处理抛出异常
什么叫异常和catch块相匹配:
1、抛出的异常和捕捉的异常是同一个类
2、抛出的异常是捕捉异常的子类
3、多个catch块中如果捕捉的异常之间有继承关系那么不要把父类放在子类之前(这种做法也不被允许)
4、尽量不要偷懒使用具体异常类而不要使用Exception
例如:
知识点:
1、什么是异常。异常是程序正常执行过程中出现的不正常的情况。例如:人在成长过程中,是个正常的执行过程,但成长过程中会经常生病,这就是异常。为了避免这种不正常的情况,我们会采取一系列措施,比如:从小锻炼身体,吃新鲜干净的食物,营养合理的搭配,以增强我们的体质。提高抗病能力。程序我们为了提高它运行时的健壮性,我们也得采用一些措施。那么怎么提高程序的健壮性呢?JAVA程序中我通过异常的捕获来增加程序的健壮性。
getMessage
printStackTrace
6、抛出异常
在一个try-catch语句中,当有多个catch块的时候,它们被顺序检查
在检查过程中,注意异常的匹配关系是很重要的
当一个异常被抛出,与它相匹配的catch块被执行,其它的catch块,就被忽略掉不再执行
如果没有catch块匹配抛出的异常,那么系统会在堆栈中搜索,找到一个匹配的捕获方法。
try{
int[] a=newint[4] ;
System.out.println(a[6]);//1
inti=3/0;//2
}catch(java.lang.ArithmeticException e){//捕获第2行异常
System.out.println("算术错误");
}
catch(java.lang.ArrayIndexOutOfBoundsException e){//捕获第1行异常
2、异常捕获的顺序是怎样的呢?当一个异常发生或抛出。那么正常的程序执行序列将被终止,程序将对异常进行处理,我们称之为抛出异常被捕获。JAVA中通过使用try-catch语句把可能抛出异常的语句包起来。例如:前面讲到资源文件类Properties类在进行文件加载时,使用以下语句捕捉异常。
try{
Pr源自文库perties pro=new Properties();
这是正常情况,在try块里顺序执行,先打出“开始”,没有异常继续执行,当执行到第2行时,得到x的值为2,不会有异常。这个时候继续执行到第3行,打出“执行”。因为在try块中没有任何异常,执行完以后接着往下顺序执行。打出第5行“异常处理外部”。
在Throwable类中有两个方法,可以用于获取抛出异常的信息
5、怎样捕获一个异常呢。
a、把正常运行的代码放在try块里。
b、如果程序中出现了异常就把异常抛出在catch中,如果catch中能捕获抛出的异常。那么就会进行处理。处理的代码写在catch块中。
try程序块里面的语句是按顺序执行的语句
当try程序块里面的语句抛出一个异常的时候,程序的控制转向了相匹配的catch程序块,catch程序块里面的语句被执行。
try{
System.out.println(“开始”);//1
int x=4/2;//2
System.out.println(“执行”);//3
}catch(Exception e){
System.out.println(“发生异常”);//4
}
System.out.println(“异常处理外部”);
4、程序中异常是怎么发生的呢?
StringinputStr = JOptionPane.showInputDialog(null, “请输入年龄”);
int age=Integer.parseInt(inputStr);
以上代码要求用户输入年龄,年龄是个数字。但通过showInputDialog得到的是个字符串。所以我们需要Integer.parseInt(inputStr),将字符串转成数字。这个时候,如果用户输入的不是一个数字型的字符串,而是一个非数字的字符串(如字母、符号),在进行Integer.parseInt(inputStr)转化是就会发生一个异常。如果我们不对它作任何处理,程序就有可能因此终止掉。
System.out.println("数组下标越界");
}
不同的异常由不同的catch块进行捕获。发生异常时由相应的catch块进行处理。
Catch块中怎么捕获异常?
当异常发生后,程序执行将忽略try程序块中剩余的语句,继续执行程序块后面的语句。
如果在try程序块中没有抛出异常,那么catch块将被忽略。程序将继续执行try-catch下面的语句
例如:
try{
System.out.println(“开始”);//1
int x=4/0;//2
System.out.println(“执行”);//3
Pro.load(new FileInputStream(“c:/abc.properties”));
}catch(IOException e){System.out.println(e);}
3、异常的类型是怎样的呢?
所有异常类的超类是Throwable。在Throwable下有两个子类,一个是Error,另一个是Exception。Error是错误,程序员无法控制,Exception是异常,程序员可以通过异常捕获加以控制。例如:电脑运行中中毒了,我们可以通过杀毒软件来处理,处理完了以后可以继续使用,这叫异常,我们可以控制。但电脑出现了蓝屏或死机的时候,我们就不能进行任何操作了。这就是错误,我们无法控制。
相关文档
最新文档