本帖最后由 姜伟 于 2013-3-26 15:22 编辑
Error是不能解决的问题,Exception是可以用来try/catch语句块来解决的问题。
比方说,public static void main(String []args)
{
byet []arr =new byte[1024*1024*600];
}
这行代码就是Error,不能再进行调试,因为数组大小已经超出JVM所分配的内存了,只能对代码进行修改,其它的不管怎么操作,都没办法解决这个问题。
而Exception能通过try/catch语句块儿来解决。例如:
File file1 =new File("abc");
try {
file1.createNewFile();
} catch (IOException e2) {
e2.printStackTrace();
}
File file2 =null;
FileInputStream fis =null;
try {
fis =new FileInputStream(file2);
} catch (Exception e) {
file2 =file1;
try {
fis =new FileInputStream(file1);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
这行代码中fis=new FIleInputStream(file2)会出现空指针异常,就会读取catch(Exception e)中的语句,将file1的值赋给file2,然后再新建一个file1的读取流。
也就是说,如果file2存在,就新建file2的读取流,如果ifle2不存在,就新建file1的读取流。 |