【发布时间】:2013-10-12 15:38:18
【问题描述】:
我有一个方法应该只接受某种格式的字符串。当格式无效时,我想抛出一个异常。我对 Java 很陌生,所以不确定这里使用的正确异常类型是什么。我发现有一个 IllegalFormatException,它基于名称听起来是正确的,但 the docs 让我对此不太确定。此处使用的正确 Exception 类是什么?
有问题的方法是 PropertyId 类的构造函数,它接受一个字符串参数,它应该匹配 '/^p[1-9][0-9]*$/i'。它的行为应该与this equivalent in Python 基本相同。
我更喜欢使用标准库提供的异常,除非确实没有合适的,或者普遍认为在我的情况下应该创建一个新的异常派生。
【问题讨论】:
-
你能写出你的格式吗?
-
IllegalArgumentException 或特定于应用程序的异常。
-
应用程序特定异常的一个论据是您可以获得更多控制权;例如,如果您的异常需要在任何使用它的地方进行处理,Eclipse (IDE) 会发出警告。您无法通过 IllegalFormatException 等运行时异常获得此功能。