Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605

    [JAVA] Thread

    Ciao a tutti,
    ho trovato questo esempio su internet..
    l'esempio dovrebbe fungere... ma a me proprio non và...
    che cosa sbaglio ho èscritto male...?



    codice:
    class MyThread2 extends Thread
    {
    
        public void run(){
        for(int i=1; true; i++) // ciclo infinito
        System.out.println(i + " " + i*i);
        }
    
    }
    
    //… e la corrispondente classe di test che crea e gestisce il thread:
    public class Esempio2 {
    
        public static void main(String args[]){
        MyThread2 t2 = new MyThread2();
        t2.start();
        Thread.sleep(1000); // sleeps 1 sec
        t2.suspend();
        Thread.sleep(1500); // sleeps 1,5 sec
        t2.resume();
        Thread.sleep(300); // sleeps 0,3 sec
        t2.stop();
        }
    
    }
    Studo creator mi segnala errore sulle linee

    Thread.sleep(1000); // sleeps 1 sec
    Thread.sleep(1500); // sleeps 1,5 sec
    Thread.sleep(300); // sleeps 0,3 sec


    se mi metto sopra l'errore mi scrive studio creator
    "unreported exception java.lang.InterruptedException; must be caught or declared to be thrown"

    che vuol dire..? e come posso risolvere?
    Ciao e buona giornata
    Giuseppe

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    37
    Quell'errore significa che nell'intestazione del metodo c'è una throw.
    Ad esempio l'intestazione del metodo "sleep" è:
    public static void sleep(long millis)throws InterruptedException.
    Tutto ciò significa che devi catturare e gestire l'eccezione(exception handly).
    Devi scrivere:

    codice:
     
    try{
       Thread.sleep(1000);
    }catch(InterruptedException ie){
       //qualcosa che gestisce l'eccezione se vuoi
    }
    Anche gli altri due metodi che invochi hanno lo stesso problema. Questo perchè al verificarsi di un'eccezione devi gestire la cosa in un altro modo. Puoi anche racchiudere tutte le invocazioni a quei metodi in un solo blocco "try-catch".
    InterruptedException in particolare significa che devi specificare cosa fare nel momento in cui il thread abbia una fine inaspettata.

    Comunque credo che tu debba guardare un po' di teoria di base e soprattutto senza gestione delle eccezioni non vai da nessuna parte.

    Trovi tutto sul sito della sun.


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.