0

这是一个学术问题,但我很想得到您的意见。

我有一个Activity由类型字符串松散参数化的。创建 Activity 时,我将始终通过Intent's传递正确的类型putExtra()。但是我只希望该字符串具有单个值,并且由于各种原因我不想对其进行硬编码(尽管我正在权衡这个想法)。

无论如何,就像一个编写可维护 Java 代码的优秀作者一样,我会抛出异常以捕获类型值不正确的高级错误。我打算用IllegalArgumentException. 有语义上更好的选择吗?

也许更好的问题是:在启动后如何最好地处理Activity配置错误的 Android?

public class MyActivity {

   private String type;

   @Override
   protected void onCreate(Bundle sharedInstanceState) {
      super.onCreate(sharedInstanceState);

      Intent intent = getIntent();
      this.type = intent.getStringExtra("type");

      if (this.type == null || !this.type.equals("the proper type")) {
         // is there something semantically better?
         throw new IllegalArgumentException("You're doing it wrong.");

         // perhaps it's better just to toast.show(), Log.e(), and finish()?
      }

      // ... etc
   }
}
4

1 回答 1

3

我想说,如果你将它作为一个库发布并希望你的代码看起来超级整洁,请声明你自己的异常(子类RuntimeException)并抛出它。当您处理程序错误时,绝对不需要担心 toast 等,而不是用户可以修复的错误。

于 2013-07-06T23:38:04.283 回答