日期:2014-05-19  浏览次数:20686 次

关于J2EE异常的处理,关键点
当所有调用者必须处理这个异常,可以让调用者进行重试操作;或者该异常相当于该方法的第二个返回值。使用checked异常。
这个异常仅是少数比较高级的调用者才能处理,一般的调用者不能正确的处理。使用unchecked异常。有能力处理的调用者可以进行高级处理,一般调用者干脆就不处理。
这个异常是一个非常严重的错误,如数据库连接错误,文件无法打开等。或者这些异常是与外部环境相关的。不是重试可以解决的。使用unchecked异常。因为这种异常一旦出现,调用者根本无法处理。
如果不能确定时,使用unchecked异常。并详细描述可能会抛出的异常,以让调用者决定是否进行处理。

public String getPassword(String userId)throws NoSuchUserException{   
	UserInfo user = userDao.queryUserById(userId);   
	If(user == null){   
	 Logger.info(“找不到该用户信息,userId=”+userId);   
	 throw new NoSuchUserException(“找不到该用户信息,userId=”+userId);   
	}   
	else{   
	 return user.getPassword();   
	}   
}   
    
public void sendUserPassword(String userId)throws Exception {   
	UserInfo user = null;   
	try{   
	  user = getPassword(userId);   
	   //……..   
	 sendMail();   
	 //   
	}catch(NoSuchUserException ex)(   
	   logger.error(“找不到该用户信息:”+userId+ex);   
	   throw new Exception(ex);   
	}   
}