- 异常处理
异常大概有:编译错误,逻辑错误,运行时错误
Java程序处理异常的方式
2.捕捉异常:try是一定要有的,catch和finally至少要有一个
[qzdypre]
try{
//可能会发生异常的代码块
}catch(异常类e){
//异常情况发生时的处理
}
catch(...){
……
}
finally{
……
}
[/qzdypre]
}
catch(错误异常的类型 可以是多个 用“|”隔开){
//打印错误的信息
}
finally{
//总要执行的语句(不管什么错误总要执行)
}
实例Try.java
[qzdypre]
import javax.lang.model.type.ArrayType;
import java.util.Scanner;
public class Try {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int i=in.nextInt();
int j=in.nextInt();
int r;
int[] a={1,2,3};
try{
r=i/j;
System.out.printf("%d/%d=%d\n",i,j,r);
a[3]++;
}catch (ArithmeticException|ArrayIndexOutOfBoundsException e){
System.out.println(e.getMessage());
} finally {
System.out.println("done!");
}
}
}
[/qzdypre]
throws(抛出异常)
实例CheckedException.java
[qzdypre]
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class CheckedException {
public static void processFile(String filepath) throws FileNotFoundException { //此处processFile不会处理此类异常,默认认为此文件路径正确!
Scanner in = new Scanner(new File(filepath));
while (in.hasNextInt()){
System.out.println(in.nextInt());
}
}
public static void main(String[] args) {
try {
processFile("D:\\test.txt");
}catch (FileNotFoundException e){
System.out.println(e.toString());
}
}
}
[/qzdypre]
line6中的processFile类负责处理文件,后有写throws FileNotFoundException,代表此类只负责处理文件,即默认觉得文件路径正确,如要完善本程序,需要在调用processFile类时加上try……catch自行检查文件是否存在,processFile不会帮你检查FileNotFoundException此类异常。
如果受检查的错误不被处理(没有被try……catch包围或抛出异常),则java编译不会通过。
文章评论