假设您在服务器端实现了如下方法:
@Override
public User login(String username, String password) throws AuthenticationFailedException {
// obtain hash from user's db entry - omitted to simplify code
String sessionID = UUID.randomUUID().toString();
currentlyLoggedIn.put(sessionID, new Session(username));
return new User(sessionID, username);
}
该方法接受用户名和密码,从数据库中检索密码并检查密码是否有效。如果它是有效的,它返回一个User
对象和生成的sessionID
和用户名。但是如果这个方法失败了呢?或者一般来说,如果一种方法不成功,最好的方法是什么?返回null
,还是抛出一些异常?
总是返回一个异常。null可以表示任何含义,但是异常可以附加一条解释问题原因的消息。这不仅适用于GWT,也适用于Java。