in realtà non sono piccolezze:
1. equals è definito in Object ed è richiesto venga implementato per il confronto tra oggetti.
In generale == controlla i riferimenti. Se non fai implementazioni, equals resta il confronto tra riferimenti. Se sei interessato a confronti, controlla sempre che ci sia equals implementato. Il confronto tra stringhe è fatto già da java.lang.String.
La prima volta ci sta l'errore, l'ho fatto pure io. Quando ho riletto bene il libro da cui stavo studiando, mi sono accorta che questo concetto è specificato a caratteri cubitali quando si presentano gli operatori di confronto (primi capitoli del libro).
2. la gestione delle eccezioni. Se non hai affrontato ancora l'argomento, l'errore ci sta.
Se l'argomento lo hai già affrontato, ti manca qualche pezzo e ti consiglio di rivederlo.
La differenza tra eccezioni checked e unchecked la sai? Quando e perché si usa una e quando e perché si usa l'altra?
Fissa bene questi concetti adesso, non pensare che siano piccolezze