Infatti sono le uniche sottoclassi dirette di Throwable.
Gli Error sono tecnicamente "unchecked", quindi NON c'è alcun obbligo di dichiararli né di catturarli/gestirli. Gli Error comunque sono concettualmente un po' diversi dalle altre eccezioni, nel senso che rappresentano errori "gravi" a cui tipicamente e difficilmente si può porre rimedio.
Comunque AssertionError non ha nulla a che fare con Exception. AssertionError NON deriva da Exception .... deriva da Error che deriva da Throwable. Quindi NON è il tuo catch di Exception nel main che può catturare AssertionError.



Rispondi quotando
