Originariamente inviato da gokutecno
Ora se io voglio definire throws il metodo run con le eccezioni MalformedURLException e IOException allo scopo di gestire l'eccezione nel metodo generateXml mi dice che non è compatibile con il metodo run.
Certo, perché una delle regole fondamentali dell'override è che il metodo che fa l'override non può dichiarare eccezioni checked in più oppure più "ampie" rispetto al metodo di cui fa l'override. Visto che run() di Runnable non dichiara eccezioni checked, allora non puoi lanciare eccezioni checked. Potresti lanciare eccezioni unchecked ma l'unica cosa che succederebbe è che la eccezione verrebbe stampata sullo standard-error dal framework. In pratica finirebbe "nel vuoto" e non potrebbe mai raggiungere alcun tuo codice.

Originariamente inviato da gokutecno
Quindi la domanda è: come faccio ad accorgermi dentro il metodo generateXml che è avvenuta un'eccezione nei thread generati?
Catturi la eccezione nel tuo thread e poi invochi un qualche metodo di un'altra tua classe di cui ovviamente devi avere un appropriato reference. Oppure imposti un flag di stato da qualche parte che userai in seguito.