当我们在Java中有系统定义的异常类时,为什么需要创建用户定义的异常类?因为我的老师告诉我在我的项目中制作异常课程。
任何精心设计的例子都会很好。
答案 0 :(得分:3)
用户定义的异常可以更具描述性。
示例:
public void setName (String name)
throws NameException
{
if (name == null || name == "")
throw new MissingNameException ();
if (name.length > 30)
throw new InvalidNameException (name); // this exception can contain a message that explains why the
// name is invalid and what a valid name looks like
_name = name;
}
创建自己的异常的替代方法是使用预定义的异常,例如InvalidArgumentException
,但是这会为捕获此异常的方法提供更少的信息(因为它可以被许多类中的许多方法抛出)
定义异常的类层次结构可以让您的类用户在处理异常时更好地控制。
答案 1 :(得分:2)
因为现有的例外可能不适合您的情况。通过创建自己的异常,您可以更容易理解抛出异常的原因,并且与使用现有异常相比,它会更好。
答案 2 :(得分:2)
有几个原因可以让用户定义例外:
ConstraintViolationException
。您立即知道您对数据库存在某种约束问题(可能是外键约束)。 话虽如此,一般来说,您应该更喜欢使用内置的Exceptions,或者至少让您的自定义Exceptions扩展内置插件,这样用户就不必关心您的特殊类,除非他们想要。 / p>
有关您为什么更喜欢内置异常的详细信息,请参阅Effective Java Item 60:赞成使用标准异常