Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305

    Comunicazione Eccezioni tra thread

    Salve vorrei chiedervi se è possibile far catturare a un thread l'eccezione che si verifica in un altro thread?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    Salve vorrei chiedervi se è possibile far catturare a un thread l'eccezione che si verifica in un altro thread?
    No, così no. Da Java 5 si può assegnare ad un Thread un UncaughtExceptionHandler ma è un po' un altro discorso.
    Descrivi meglio il perché .... la tua domanda mi fa storcere un po' il naso.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    E' sempre per il discorso dell'altro post, quello "Java Client Server". Praticamente devo far si che la comunicazione col server non venga effettuata dall'edt! Solo che per come è scritta la classe che si occupa della connessione del client , viene sollevata un 'eccezione in caso negativo di connessione. Come faccio a comunicare quest'eccezione all'edt?

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Pattern observer: un oggetto "osservatore" si "registra" sull'oggetto che può lanciare questa eccezione ("l'osservato") e viene avvisato quando succede qualcosa.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    O, più semplicemente, quando il thread cattura l'eccezione, richiama un metodo dell'interfaccia grafica nel contesto dell'EDT, usando SwingUtilities.invokeLater()...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    O, più semplicemente, quando il thread cattura l'eccezione, richiama un metodo dell'interfaccia grafica nel contesto dell'EDT, usando SwingUtilities.invokeLater()...


    Ciao.
    Non mi è chiara quest'ultima cosa. Ovvero invokeLater, richiede un oggetto Runnable. Non ho capito cosa intendi . potresti spiegarmelo per favore ?

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    Non mi è chiara quest'ultima cosa. Ovvero invokeLater, richiede un oggetto Runnable. Non ho capito cosa intendi . potresti spiegarmelo per favore ?
    Una cosa del genere:

    codice:
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            // operazioni da eseguire sulla UI
        }
    });
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    Alternative??

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    Alternative??
    Alternative? Se sei in un thread e devi comunicare qualcosa all'EDT, no. Quello è ed è piuttosto semplice.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    Una cosa del genere:

    codice:
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            // operazioni da eseguire sulla UI
        }
    });
    questa porzione di codice dovrebbe essere messa all'interno della catch esatto?
    Se invece devo restituire qualcosa all'edt?? Devo usare necessariamente SwingWorker? il problema è che la mia classe è composta da più metodi quindi dovrei creare più classi SwingWorker dove ognuna implementa un thread che richiama un metodo dell'istanza della mia classe che sarà condivisa implementando un pattern singleton.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.