Java 如何从构造函数返回错误消息(字符串)?
要求:Java 如何从构造函数返回错误消息(字符串)?,java,constructor,Java,Constructor,要求: 节是通过选择一名教师、一个科目和一个项目创建的 时间表 系统验证是否遵循了所有业务规则 系统检测到未遵循业务规则 系统通知用户冲突 系统不创建新节 3.系统创建新的节 我的问题是,如果我为section,section(教师t,主题s,附表c)定义了一个构造函数,我不知道如何返回冲突的错误消息 我应该让我的构造函数抛出一个异常吗?如果是,如何从捕获的异常返回字符串?如何创建该异常 或者有更好但简单的实现吗?不可能从构造函数返回值。唯一的方法是抛出某种异常。您可以使用现有的异常类型(如
- 系统检测到未遵循业务规则
- 系统通知用户冲突
- 系统不创建新节
或者有更好但简单的实现吗?不可能从构造函数返回值。唯一的方法是抛出某种异常。您可以使用现有的异常类型(如果有任何适用的异常类型),也可以通过扩展
异常
来创建自己的异常类型。例如:
public class MyException extends Exception {
public MyException(){
super();
}
public MyException(String message){
super(message);
}
}
构造函数只需抛出异常的新实例并设置适当的消息。创建类实例的代码将捕获异常并处理它。此时,您可以通过调用
getMessage()
获取消息。报告构造函数失败归结为两个选项:
您可以肯定地抛出异常
throw new Exception("Some required files are missing");
或者创建一个新的异常以在应用程序中使用(其工作方式相同)
如果要阅读try/catch语句中的消息,请执行以下操作:
try
{
// ...
}
catch(Exception ex)
{
System.out.println(ex.getMessage()); //this will get "Some required files are missing"
}
有关更多信息,请查看以下链接:
与所有异常一样,
抛出异常对象
(使用未检查的异常或使用抛出
)来抛出和捕获(SomeExceptionType e)
来处理。然而,从构造函数中抛出除最可怕的异常之外的所有异常是。。讨厌的:(这里特别棘手,因为对象图上的某些业务逻辑必须在ctor中处理,才能在ctor中提出。另外,抛出/捕获泛型异常
实例通常不是最佳做法。在这种情况下,如果问题的作者不想创建自己的自定义异常抛出IllegalArgumentException
可能是一个合理的替代品。这样,意外的异常不会被无意中处理。