我有一个需要返回JSONObject的方法:

public JSONObject getDayJson(Date date) {
   ...
   a few lines of code
   ...
   return new JSONObject("..");
}


但是,这给了我一个错误,因为我需要捕获实例化JSONObject可能导致的任何异常:

public JSONObject getDayJson(Date date) {
  try {
      ...
      a few lines of code
      ...
      return new JSONObject("..");
   } catch (Exception e) {
      // need a return statement here!
   }
}


这会导致另一个错误,因为在catch块中,我没有返回正确的对象类型,即JSONObject。如果确实在catch中实例化了另一个JSONObject,则需要嵌套另一个catch语句?!

最佳答案

您最好考虑一下如果发生异常,该怎么办,但是一种选择是强制使用非异常调用构造函数。

public JSONObject getDayJson(Date date) {
  try {
      ...
      a few lines of code
      ...
      return new JSONObject("..");
   } catch (Exception e) {
      // doesn't throw another exception
      return new JSONObject(new HashMap());
   }

}

10-05 21:12
查看更多