Jes*_*ris 3 java android overriding
难道在Android中有一个"抛出"东西的AsyncTask吗?如果我不@Override方法,它不会被调用.如果我在末尾添加"throws",则会出现编译器错误.例如,我想做类似的事情:
class testThrows extends AsyncTask<String,Void,JSONObject> {
@Override
protected JSONTokener doInBackground(<String>... arguments) throws JSONException {
String jsonString = arguments[0];
JSONTokener json = new JSONTokener(jsonString);
JSONObject object = json.getJSONObject("test");
return object;
}
}
Run Code Online (Sandbox Code Playgroud)
json.getJSONObject抛出JSONException.有没有办法做到这一点?
您需要做的是使用运行时(未经检查)异常(通常类似于IllegalArgumentException;或者如果没有任何内容匹配语义,普通RuntimeException)来包装异常,并将已检查的异常指定为"根本原因"(通常作为构造函数参数).
不,你不能扩大一组检查异常:这将违反基本的OO原则,类似于你不能降低可见性(例如从公共到私有).
| 归档时间: |
|
| 查看次数: |
3043 次 |
| 最近记录: |