在 java 中创建检查异常 class
create checked exception class in java
我对在 java 中创建 checked exception class
感到困惑。
很多文章说可以通过
创建自定义异常
class MyException extends Exception
{
//constructor defined
}
因为RuntimeException也是继承自Exception
class。
是否无法创建仅涵盖已检查异常的 class?
或者我需要指定检查异常列表
class MyException extends IOException
{
//constructor defined
}
在上面的代码中,我可能会错过某些已检查的异常。
这个:
class MyException extends IOException,FileNotFoundException
在Java中根本不可能。一个class只能扩展一个其他class。
重点是:
- 当您 extend Exception 时,您正在创建一个已检查的异常。
- 当您扩展 RuntimeException时,您正在创建一个未经检查的异常
仅此而已。是的,你是对的,RuntimeException extends Exception
是 位 尴尬,但 不是 已检查异常。但这个事实基本上是 "baked" 进入 Java 语言,对此你无能为力(除了知道和接受)。
当您更新问题时 - 当您这样做时:
public class MyException extends IOException
然后你创建一个 checked 异常,它是 也是 一个 IOException!所以准确地说:当你扩展 Exception
或任何子 classes ob Exception
(except RuntimeException) 你正在创建一个检查异常!
Is it not possible to create a class that will cover only Checked
Exceptions ?
覆盖异常?
我认为您误解了异常概念。
您将创建的任何异常都不会涵盖所有异常,因为异常根 class 是 Exception
而不是您的自定义异常 class.
In above code, there can be a scenario where i would miss certain
checked exceptions.
您想表示一个可以包装任何已检查异常的异常吗?
因此,在您的构造函数中提供一个字段 class 以将您的异常与任何已检查的异常相关联:
public class MyCheckedException extends Exception
{
public MyCheckedException(Exception causeException){
super(causeException);
}
}
我对在 java 中创建 checked exception class
感到困惑。
很多文章说可以通过
创建自定义异常class MyException extends Exception
{
//constructor defined
}
因为RuntimeException也是继承自Exception
class。
是否无法创建仅涵盖已检查异常的 class?
或者我需要指定检查异常列表
class MyException extends IOException
{
//constructor defined
}
在上面的代码中,我可能会错过某些已检查的异常。
这个:
class MyException extends IOException,FileNotFoundException
在Java中根本不可能。一个class只能扩展一个其他class。
重点是:
- 当您 extend Exception 时,您正在创建一个已检查的异常。
- 当您扩展 RuntimeException时,您正在创建一个未经检查的异常
仅此而已。是的,你是对的,RuntimeException extends Exception
是 位 尴尬,但 不是 已检查异常。但这个事实基本上是 "baked" 进入 Java 语言,对此你无能为力(除了知道和接受)。
当您更新问题时 - 当您这样做时:
public class MyException extends IOException
然后你创建一个 checked 异常,它是 也是 一个 IOException!所以准确地说:当你扩展 Exception
或任何子 classes ob Exception
(except RuntimeException) 你正在创建一个检查异常!
Is it not possible to create a class that will cover only Checked Exceptions ?
覆盖异常?
我认为您误解了异常概念。
您将创建的任何异常都不会涵盖所有异常,因为异常根 class 是 Exception
而不是您的自定义异常 class.
In above code, there can be a scenario where i would miss certain checked exceptions.
您想表示一个可以包装任何已检查异常的异常吗?
因此,在您的构造函数中提供一个字段 class 以将您的异常与任何已检查的异常相关联:
public class MyCheckedException extends Exception
{
public MyCheckedException(Exception causeException){
super(causeException);
}
}