下面的代码会处理任何类型的异常吗?
try
{
// some code
}
catch(Exception e)
{
// some code part
}
或者我应该这样做:
try
{
// some code
}
catch(type of Exception e)
{
// some coding stuff
}
答案 0 :(得分:1)
你可以尝试下面的事情:
1)捕获所有Exception
对象及其子类型:
try {
// potential exception throwing code
}
catch(Exception e){
}
2)捕获所有Throwable
和子类型:
try {
// potential exception and error throwing code
}
catch(Throwable t){
}
3)捕获任何XYZ异常及其子类型:
try {
// potential XYZException throwing code
}
catch(XYZException xyzException){
}
有关详细信息,请参阅Oracle网站:http://docs.oracle.com/javase/tutorial/essential/exceptions/。
答案 1 :(得分:0)
try {
//some code
} catch(Exception e) {
//some code part
}
它将处理所有类型的异常,因为它的所有类型的异常的父类,但是如果你得到像AWTError
或VirtualMachine Error
的错误 - > OutOfMemoryError
或StackOverFlowError
然后它将无法处理它。
要处理所有类型的异常,错误就是这样。
try {
// some code
}
catch(Throwable throwable) {
// some coding stuff
}
示例2:
try {
// some code
}
catch(type of Exception e) {
// some coding stuff
}
这不会处理所有类型的异常。如果你在这里写NullPointerException
,那么它只会处理NullPointerException
。
记住:以这样的方式定义catch,将子类放在第一个然后是父类,否则代码变为Unreachable,你将得到编译时错误。
try {
// some code
}
catch(NullPointerException e) {
// some coding stuff
}
catch(Exception e) {
// some coding stuff
}
答案 2 :(得分:0)
这取决于catch语句中的Exception类型
catch (Exception e)
将捕获任何异常,因为它是所有异常的父类。
catch (FileNotFoundException e)
只会捕获FileNotFoundExceptions。
这允许你有多个catch语句:
try {
...
}
catch (FileNotFoundException e) {
//do something with FileNotFoundException
}
catch (IOException e) {
//do something with IOException
}
答案 3 :(得分:0)
try { some code } catch(Exception e) { some code part }
将捕获类型Exception
或其任何子类的任何异常。如果要捕获任何异常,请使用
try { some code } catch(Throwable e) { some code part }
然后你也会得到Error
s(未找到类等)。
答案 4 :(得分:0)
尝试后应该抓住。 FileNotFoundException是IOException的子异常。所以必须先行。如果您打开了一些文件并且在try块中发生异常,则需要在finally块中关闭它。当try块退出时,finally块总是执行。
try {
}
catch (FileNotFoundException e) {
//do something with FileNotFoundException
}
catch (IOException e) {
//do something with IOException
}
finally
{
// do some clean up operation
}
http://docs.oracle.com/javase/tutorial/essential/exceptions/try.html
http://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html
http://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html
http://www.programcreek.com/2009/02/diagram-for-hierarchy-of-exception-classes/