Item Check validity of parameters
Chapter: Method Design
- Focus: Usability, robustness and flexibility in method design.
- Coverage: Parameter and return value handling, method signature design, and documentation.
Item 49: Check Parameter Validity
- Restrictions on Parameters:
Methods and constructors generally have restrictions on parameter values (e.g. non-negative indices, non-null references).
These restrictions must be documented and verified at the beginning of the method.
- Importance of Verification:
Detect errors as early as possible to avoid unexpected failures or incorrect behavior in the method.
Methods that don't check their parameters can cause hard-to-debug crashes.
- Exceptions Documentation:
Use the @throws Javadoc tag to document exceptions thrown in case of constraint violations.
Common exceptions: IllegalArgumentException, IndexOutOfBoundsException, NullPointerException.
Parameter Check Example:
public static int mod(int x, int y) { if (y <= 0) { throw new IllegalArgumentException("Divisor deve ser positivo."); } return x % y; }
- Usage of Objects.requireNonNull:
Introduced in Java 7, it is used to check nullability of objects.
Returns the value passed after verification:
this.m = Objects.requireNonNull(m, "Parâmetro 'm' não pode ser nulo");
- Ranges Check (Java 9):
checkFromIndexSize, checkFromToIndex, and checkIndex methods for checking indexes in lists and arrays.
Less flexible, mainly used for collections.
**
- Parameter Check in Non-Public Methods:** For non-exported methods, use assertions to check parameters:
assert x > 0 : "Valor de x deve ser positivo";
- Special Cases:
Builders should always check the validity of stored parameters for later use.
Exceptions can be made for costly checks, where the check is implicit during the calculation.
- Implicit Verification Example:
Collections.sort(List) assumes that objects are mutually comparable. Verification occurs during the sorting process.
- Translation of Exceptions:
When implicit checking throws the wrong exception, use "exception translation" to throw the correct exception.
- Flexibility in Restrictions:
Methods should be designed to be as general as possible, imposing as few restrictions as necessary.
- Conclusion:
Document and implement parameter validity checks on methods and constructors. Practice is essential to avoid future errors and facilitate debugging.
The above is the detailed content of Item Check validity of parameters. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

