Home Java javaTutorial Item Check validity of parameters

Item Check validity of parameters

Aug 30, 2024 am 06:38 AM

Item  Verifique a validade dos parâmetros

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;
}

Copy after login

- 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");

Copy after login

- 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";

Copy after login

- 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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Have Crossplay?
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)