Originariamente inviato da Downloader
Il metodo deve essere definito cosi:
codice:
public void method1() {}
e non cosi:
codice:
public void method1() throws IllegalStateException {}
Ok, va benissimo. Perché IllegalStateException è una eccezione "unchecked". Una eccezione "unchecked" non sei obbligato a dichiararla con il throws e nemmeno a catturarla/gestirla. Insomma ... non sei obbligato a tenerne conto.

Originariamente inviato da Downloader
Ora, se utilizzassi il blocco try-catch come dovrei fare a poter sollevare quel tipo di eccezione?
Ci sono invece soluzioni alternative?
In che senso?? Non ho capito il tuo dubbio. Nel method1 è banale:

codice:
public void method1() {
    if (condizione_stato_errato) {
        throw new IllegalStateException("....tuo messaggio....");
    }

    ....
}
Chi invoca method1() non è affatto obbligato a catturare/gestire IllegalStateException. E nemmeno a dichiararla a sua volta con il throws!!