Siemka, czy jest możliwe raz a porządnie zgłosić wyjątek w metodzie, mam na myśli czy metoda która posiada funkcje które wymagają obsługę jakiegoś wyjątku może mieć jakąś instrukcje która umożliwi nie obsługiwanie tych wyjątków w metodach wywołujących tą metodę, dla przykładu:
public class Main {
Main() throws InterruptedException {
method1();
}
public static void main(String[] args) throws InterruptedException {
new Main();
}
public void method1() throws InterruptedException {
method2();
}
public void method2() throws InterruptedException {
Thread.sleep(1000);
System.out.println(".");
}
}
Jedna mała funkcja wymaga obsługę wyjątku InterruptedException a przez to że jest wywoływana przez inne funkcje wszystkie muszą obsługiwać ten wyjątek a gdyby tylko dało się zrobić coś na zasadzie
public void method2() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.exit(0);
}
System.out.println(".");
}
to nie byłoby szans wystąpienia wyjątku w metodzie1 tylko że takie rozwiązanie dalej wymaga obsłużenia wyjątków w tej metodzie
a w moim konkretnym problemie mam metode actionPerformed (listener) która nie pozwala sobie dopisać "throws InterruptedException" i pozostaje jedynie opcja z try catch ale problem rodzi się taki że wtedy funkcje nie wykonują się na bieżąco tylko try catch wykonuje niektóre instrukcje tak jakby w pamięci i realizuje je dopiero gdy cały blok try catch nie napotkał błędu co powoduje że program
public class Main {
Main() throws InterruptedException {
method1();
}
public static void main(String[] args) throws InterruptedException {
new Main();
}
public void method1() throws InterruptedException {
method2();
button1.setIcon(icon2);
}
public void method2() {
try {
button1.setIcon(icon1);
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.println("error");
}
System.out.println(".");
}
}
ani na chwile nie przypisuje przyciskowi obrazka1 bo jest przy zakończeniu operacji try catch automatycznie bez czekania nadpisany przez obrazek2
Czy da radę to jakoś rozwiązać czy może ja źle korzystam z obiektowości javy?