Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

APIs should use a combination of these approaches both to help clients distinguish correct results from incorrect ones and to encourage careful handling of any incorrect results. In cases where there is a commonly accepted error value that cannot be misinterpreted as a valid return value for the method, that error value should be returned; and in other cases, an exception should be thrown. A method must not return a value that can hold both valid return data and an error code; see 52. Avoid in-band error indicators for more details.

Alternatively, an object can provide a state-testing method [Bloch 2008] that checks whether the object is in a consistent state. This approach is useful only in cases where the object's state cannot be modified by external threads. This prevents a time-of-check, time-of-use (TOCTOU) race condition between invocation of the object's state-testing method and the call to a method that depends on the object's state. During this interval, the object's state could change unexpectedly or even maliciously.

...

[Bloch 2008]Item 59, "Avoid unnecessary use of checked exceptions"
[Ware 2008]Writing Secure Java Code

 

...

Image Modified Image Modified