co robi throws, bo nie rozumiem
dlaczego w tym kodzie poniżej instrukcja catch sie nie wykonuje skoro wiadomo że in.read() powoduje wyjątek.
w ksiażce mam napisane że jeśli metoda generuje wyjątek którego nie obsługuje to musi być poprzedzona throws. Ale skoro generuje wyjątek to program powinien być przerwany
Może te nieobsługiwane wyjątki są nieobsługiwane bo mają rezultat nie w moim programie a w JVM albo systemie opeaceyjnym a tam JVM nie sięga?
class ThrowsDemo {
public static char prompt(String str)
throws java.io.IOException {
System.out.print(str + ": ");
return (char) System.in.read();
}
public static void main(String args[]) {
char ch;
try {
ch = prompt("Enter a letter");
}
catch(java.io.IOException exc) {
System.out.println("I/O exception occurred.");
ch = 'X';
}
System.out.println("You pressed " + ch);
}
}