1
爲什麼不提供消息的setter,並只允許通過構造函數設置它(例如super(_msg)
)?爲什麼java.lang.Exception不允許在構造函數外設置消息?
例如:
public BadParameterException(QueryParameter _param, String _valStr) {
this.param = _param;
this.valAsStr = _valStr;
}
public BadParameterException(QueryParameter _param, String _valStr, String _msg) {
this(_param, _valStr);
/* This is not possible */ super.setMessage(_msg);
}
相反,我必須這樣做:
public BadParameterException(QueryParameter _param, String _valStr, String _msg) {
super(_msg);
this.param = _param;
this.valAsStr = _valStr;
}