【发布时间】:2012-11-27 15:37:13
【问题描述】:
可能重复:
Throwing exceptions in Scala, what is the “official rule”
如何处理可以从类中启动的所有异常? 我是 Scala 和 Java 的新手,我知道的很少,我从未使用过异常。
这是我的课:
class Element (var name:String){
}//class Element
现在在我的类中添加一个验证方法,如下所示:
class Element (var name:String){
// VALIDAZIONE DI ELEMENT
def validateElement : Boolean = {
val validName : Boolean = try{if(this.name!=null) true
else throw new IllegalArgumentException ("Element: ["+this+"] has no name.")
}catch {
case e: IllegalArgumentException => println("Exception : " + e); false
}
if (validName) true else false
}//def validate
}//class Element
该方法有效。 但我有一个疑问。 我把 else 的 false 放在哪里?在 catch 子句中?和我一样?
非常感谢您的帮助。
【问题讨论】:
-
请在询问之前至少做一些研究。如果您对异常完全陌生,a basic Google search 为您提供了一堆看起来不错的教程。此外,在问类似问题之前,请检查现有的相关问题(如右图所示)。
-
嗨,我已经编辑了我的问题。
-
立即捕获异常没有意义。如果您想在验证失败的情况下向调用者抛出异常,只需将其抛出并让它向上传播到调用者,即不要在
validateElement中捕获它。如果您想在验证失败的情况下返回 false,只需返回 false 并且不要为异常烦恼。我再次建议您阅读有关异常的体面教程。