我希望在Java中抛出一般Exception
。
“情境”基本上是遇到空行,抛出异常并忽略空行。
现在,我来自C#背景,所以我只会抛出一个正常的Exception
。在Java中,有一个吗?我似乎无法找到它。
我知道我可以断言,但这会使用AssertionException
正确解决问题吗?
谢谢,
凯尔
编辑:
感谢您的回答。不幸的是,这是我自己的愚蠢让我错过Exception
,这是我在回来之前发现的。我接受了Bills对断言评论的回答,考虑到因为投票太多而无法删除这个问题(在10秒内我可能会添加,呵呵)。
答案 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();
但是,大多数时候只应针对特殊情况抛出异常。如果您希望收到空白行,并希望忽略它们,那么您的代码应该处理这种情况而不会抛出异常。