我一直在网上搜索和研究一些书籍,但给出的例子有限,我对用户定义的异常仍有一些疑问。
以以下代码为例:
//Conventional way of writing user-defined exception
class IdException extends Exception
{
public IdException(String s)
{
super(s);
}
}
class Product
{
String id = new String();
public Product(String _id) throws IdException
{
id = _id;
//Check format of id
if (id.length() < 5)
throw(new IdException(_id));
}
}
似乎编写用户定义异常的常规方式几乎总是相同的。在自定义异常的构造函数中,我们总是调用super(msg)
. 这引发了我的一个问题:如果大多数异常都是这样实现的,那么所有这些异常之间有什么区别?
例如,我可以有多个用户定义的异常,但似乎都做同样的事情,没有任何区别。(这些异常中没有实现,是什么让它们起作用?)
例子:
class IdException extends Exception
{
public IdException(String s)
{
super(s);
}
}
class NameException extends Exception
{
public NameException(String s)
{
super(s);
}
}
class ItemException extends Exception
{
public ItemException(String s)
{
super(s);
}
}
QUE:那么我们不应该(例如)id
在异常类内部实现检查吗?如果不是所有的异常类似乎都做同样的事情(或什么都不做)。
在异常中实现检查的示例:
class IdException extends Exception {
public IdException(String s)
{
super(s);
//Can we either place the if-statements here to check format of id ?
}
//Or here ?
}