Java中的常规异常

时间:2009-11-24 18:54:59

标签: java exception-handling

我希望在Java中抛出一般Exception

“情境”基本上是遇到空行,抛出异常并忽略空行。

现在,我来自C#背景,所以我只会抛出一个正常的Exception。在Java中,有一个吗?我似乎无法找到它。

我知道我可以断言,但这会使用AssertionException正确解决问题吗?

谢谢,

凯尔


编辑:

感谢您的回答。不幸的是,这是我自己的愚蠢让我错过Exception,这是我在回来之前发现的。我接受了Bills对断言评论的回答,考虑到因为投票太多而无法删除这个问题(在10秒内我可能会添加,呵呵)。

3 个答案:

答案 0 :(得分:6)

Java有一个普通的Exception类,但你几乎不想抛弃它。我更喜欢扩展它(或另一种异常类型)以针对您的特定情况提出更具体的异常。

此外,您不应该使用断言代替在代码中抛出异常。断言可能被禁用(默认情况下被禁用),因此当最终用户运行代码时,您无法指望它们存在。 Sun的文章Programming With Assertions中有很多很好的信息。

答案 1 :(得分:4)

我想知道为什么你需要首先抛出异常。如果您的目标是忽略空行,那么if语句听起来就像是一个更好的解决方案。不要使用例外来代替正常的流量控制。

答案 2 :(得分:0)

Bozho是对的。但更完整的答案是,在C#中,所有异常都必须从System.Exception继承,而在Java中,您可以抛出任何继承自java.lang.Throwable的异常。 java.lang.Exception继承java.lang.Throwable,是Java中使用的大多数异常的超类。或者你也可以想要抛出一个java.lang.Error,或者创建你自己的throwable类来使用它。

否则,语义非常相似:

throw new Exception();

但是,大多数时候只应针对特殊情况抛出异常。如果您希望收到空白行,并希望忽略它们,那么您的代码应该处理这种情况而不会抛出异常。