2011-04-16 52 views

回答

5

如果您要使用预定义的例外,您可能会抛出IllegalStateException,因为对象已处于listening状态。

但是,如果你这样做了,应该有一种方法让客户端找出是否已经调用了listen。例如。一种isListening()方法。

您也可能创建自己的异常,可能从IOException扩展,因为这是一个IO问题。据推测,尝试多次收听失败,因为网络资源已被用于第一次收听。 (类似于套接字绑定)

2

在这种情况下,我会抛出一个IllegalStateException。它通常用于指示用户试图在对象的当前状态下做出不合法的事情。

3

由于这是一个逻辑错误,只有当您的库的客户端使用不当时,您抛出的异常应该是一个未经检查的异常(例如java.lang.RuntimeException或其派生物)与检查的异常相对。

java.lang.IllegalStateException被用于该目的:

“是一种方法,在非法或不适当的时间调用信号”但是,这也可能是你自己的自定义异常作出异常层次。

相关问题