samadio / SDM_exam

1 stars 0 forks source link

Should validators throw unchecked exceptions? #7

Closed federico-camerota closed 4 years ago

federico-camerota commented 4 years ago

La classe D&BValidator ha l'unico scopo di validare le mosse pervenute al gioco. Tuttavia, le eccezioni che lancia nel metodo di validazione sono tutte sottoclassi di RuntimeException. Ne segue che tali eccezioni non sono controllate a compile time e non è nemmeno necessario includerle nelle signature dei metodi che potrebbero lanciarle.

La domanda è: ha senso che tali eccezioni siano unchecked quando l'unico scopo che hanno, assieme alla classe D&BValidator, è quello di segnalare mosse non valide che devono quindi essere gestite in qualche modo?

Ciò si ricollega alle responsabilità tra validatore e board. La board già lancia delle eccezioni unchecked quando mosse non valide le vengono passate (ad esempio IndexOutOfBounds) quindi ritengo le eccezioni lanciate dal validatore debbano essere checked.

Inoltre, l'exception messa nella signature del metodo di validazione non dovrebbe risultare troppo generica se di tipo checked.