Mi piace molto il concetto di asserzioni in Java nel modo in cui usarle. È molto più facile che scrivere un if e quindi lanciare un'eccezione / errore.
Ma la cosa che non capisco è, perché hanno bisogno di essere abilitati con -ea a lavorare? Questo li rende inaffidabili e questo è il motivo per cui non li uso. Qual è lo scopo di questa decisione e qual è lo scopo delle asserzioni se possono essere attivate o disattivate e il programma deve gestirle?