Android 中是否有可能有一个“抛出”东西的 AsyncTask?如果我不 @Override 该方法,则不会调用它。如果我在末尾添加“抛出”,则会出现编译器错误。例如,我想做类似的事情:
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;
}
}
json.getJSONObject 抛出 JSONException。有什么办法可以做到这一点吗?
您需要做的是将异常包装为运行时(未经检查的)异常(通常类似于IllegalArgumentException
;或者如果没有任何内容符合语义,则简单RuntimeException
),并将检查的异常指定为“根本原因”(通常作为构造函数参数)。
不,您不能扩大检查异常集:这将违反基本的面向对象原则,类似于您不能降低可见性(例如从公共到私有)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)