java - 在android中验证函数先决条件

标签 java android methods error-handling preconditions

通常在编写公共(public)方法时我会做一些错误检查,例如

public SomeResult processSomething (int i, List<String> items) {
   if( i < 0 ) {
      throw new IllegalArgumentException();
   }
  if(items == null) {
     throw new NullPointerException();
  }
etc
}

在 android 编程中,标准方法是什么?我注意到,当一个 fragment 崩溃时,模拟器会转到前一个 fragment ,因此从向用户显示的行为来看,我猜这是可以的。但处理异常/错误情况的最佳方法是什么?

最佳答案

此处的最佳实践与 Java 世界其他地方使用的最佳实践非常相似:

1. 方法的第一行通常用于检查方法参数的有效性。如果发生错误,该方法应尽快失败。

验证参数时,如果测试失败,将抛出 Exception。抛出的通常是这些未经检查的异常之一:

  • IllegalArgumentException
  • NullPointerException
  • IllegalStateException

这些都是从RuntimeException派生的。

2. 如果类中every 方法的every 对象参数需要为非空以避免抛出 NullPointerException,那么可以在通用类 javadoc 中声明一次,而不是为每个方法重复它。

引用资料:

Preconditions, Postconditions, and Class Invariants .

编辑:

要回答有关“特定于错误的 View ”的问题:虽然确实可以这样做,但想法是 Exception 指示代码中存在编程错误。因此,应该允许应用程序崩溃,以便用户可以报告错误,开发人员从而从应用程序的 Play 商店帐户中获取错误日志。这样他就可以纠正这些错误的来源。该过程应该一直持续到假设应用完全没有错误为止。

关于java - 在android中验证函数先决条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29193631/

相关文章:

java - 响铃一定次数后挂断电话

android - 无法动态更改自定义 DialogFragment 布局

安卓工作室 : Integrating Butterknife?

javascript - 除非手动触发一次,否则 HTML5 音频无法通过 Javascript 播放

android - 从 View 中调用电话

java - 对象化查询过滤器,例如 "name contains"

java - 在 SONAR 中进行方法覆盖时的小问题

java - 打开新的内容 View

javascript - 如何创建使用前缀作为参数的自定义方法

java - 按照惯例,Java 中的 set() 方法可以返回值吗?