要求:
通过选择一个教师,一个科目和一个科目来创建科 时间表。
系统会验证是否遵循了所有业务规则。
系统检测到未遵循业务规则。
系统通知用户冲突。
系统不会创建新的部分。
3.System创建新的部分。
我的问题是,如果我为section,Section(Teacher t,Subject s,Schedule c)定义构造函数,我不知道如何返回冲突的错误消息。
我应该让我的构造函数抛出异常吗?如果是,如何从捕获的异常中返回一个字符串?如何创建该例外?
或者是否有更好,更简单的实施?
答案 0 :(得分:4)
报告构造函数失败归结为两个选项:
答案 1 :(得分:2)
您可以确定抛出异常。
throw new Exception("Some required files are missing");
或者创建一个新的Exception以在您的应用中使用(它将以相同的方式工作)
如果要读取try / catch语句中的消息,请执行以下操作:
try
{
// ...
}
catch(Exception ex)
{
System.out.println(ex.getMessage()); //this will get "Some required files are missing"
}
欲了解更多信息,请点击这些链接: http://en.wikibooks.org/wiki/Java_Programming/Throwing_and_Catching_Exceptions How to throw a general exception in Java? http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html#getMessage()
答案 2 :(得分:1)
无法从构造函数返回值。你这样做的唯一方法是抛出某种异常。您可以使用现有的例外类型(如果有任何适用的话),也可以通过扩展Exception
来创建自己的例外类型。例如:
public class MyException extends Exception {
public MyException(){
super();
}
public MyException(String message){
super(message);
}
}
您的构造函数只会抛出异常的新实例并设置适当的消息。创建类实例的代码将捕获异常并处理它。您可以通过调用getMessage()
来获取该消息。