【发布时间】:2016-09-27 18:49:02
【问题描述】:
我的模型类带有可以抛出异常的构造函数:
public class BookModel {
private Book book;
String authorName;
public BookModel(Book book) {
this.book = book;
try {
this.authorName = (AuthorLocalServiceUtil.getAuthor(book.getAuthorId())).getAuthorName();
} catch (PortalException | SystemException e) {
e.printStackTrace();
}
}
之后,我在这里创建新对象:
for (Book book: bookList) {
books.add(new BookModel(book));
}
所以我的问题是,我应该在构造函数中还是在对象初始化时捕获我的异常?我是新手,所以我真的需要你的帮助。
【问题讨论】:
-
我不知道这是否是例外的正确位置。这实际上取决于您要如何处理异常,但我个人会在创建对象时而不是在构造函数中捕获它。
-
另一个例子是检查异常对代码造成的损害。他们应该改进它。
-
你在这里穿透了层边界。模型不应该主动访问服务层,它应该是一个将数据推送到其中的被动组件。
-
@MarkoTopolnik 那我该怎么办?
标签: java constructor exception-handling liferay