当前位置: 技术问答>java相关
在异常处理中,如果把一句绝对不会抛出异常的语句用try{}catch(){},会用什么反映?进来看看这个例子
来源: 互联网 发布时间:2015-03-11
本文导语: 已知File f=new File("D:\WorkRoom");,下面有四种情况: 1.编译不通过,说需要异常处理IOException System.out.println(f.getCanonicalPath()); 2.编译通过,运行结果D;WorkRoom Syste.out.println(f.getAbsolutePath()); 3.编译通过,运行结果D:WorkRoom try { ...
已知File f=new File("D:\WorkRoom");,下面有四种情况:
1.编译不通过,说需要异常处理IOException
System.out.println(f.getCanonicalPath());
2.编译通过,运行结果D;WorkRoom
Syste.out.println(f.getAbsolutePath());
3.编译通过,运行结果D:WorkRoom
try
{
System.out.println(f.getCanonicalPath());
}
catch(IOException ioe){}
4.编译不通过,说永远不能抛出IOException
File f=new File("D:\WorkRoom");
try
{
System.out.println(f.getAbsolutePath());
}
catch(IOException ioe){}
最后问问:getAbsolutePath()和getCanonicalPath()有什么区别啊?
1.编译不通过,说需要异常处理IOException
System.out.println(f.getCanonicalPath());
2.编译通过,运行结果D;WorkRoom
Syste.out.println(f.getAbsolutePath());
3.编译通过,运行结果D:WorkRoom
try
{
System.out.println(f.getCanonicalPath());
}
catch(IOException ioe){}
4.编译不通过,说永远不能抛出IOException
File f=new File("D:\WorkRoom");
try
{
System.out.println(f.getAbsolutePath());
}
catch(IOException ioe){}
最后问问:getAbsolutePath()和getCanonicalPath()有什么区别啊?
|
注意IOException是checked exception.
f.getAbsolutePath()不会抛出IoException, 所以编译的时候不过.
换成catch(Exception e)就可以了.
getAbsolutePath()是绝对路径
f.getAbsolutePath()不会抛出IoException, 所以编译的时候不过.
换成catch(Exception e)就可以了.
getAbsolutePath()是绝对路径
|
想确切知道异常的的类型的话,可以先用下面的语句测试一下,再写:
try
{
// Write your code here
}
catch(Exception e)
{
System.out.println(e.getClass().getName());
}
打印出来的是确切的异常的类的名称(包括Package)。
try
{
// Write your code here
}
catch(Exception e)
{
System.out.println(e.getClass().getName());
}
打印出来的是确切的异常的类的名称(包括Package)。