Na przykład wyjątek typu: java.net.BindException może wyświetlać "Adres już w użyciu" (próbując powiązać port używany przez inny program) lub "Odmowa uprawnień" (nie można mieć uprawnienia root'a do otwarcia tego numeru portu). Nie jestem właścicielem klasy, która zgłasza wyjątek BindException.rozróżnić wyjątki tego samego typu
Co to jest najlepsza praktyka odróżniania tych "różnych" Wyjątków tego samego typu?
Robię to, ale nie wiem, czy to najlepsza praktyka:
try {
//...some scary stuffs here
}
catch (BindException e){
if (e.getMessage().contentEquals("Permission denied")){
System.out.println("ERROR**You must be ROOT to bind that port address TCP:"+defaultPort);
}
else if (e.getMessage().contentEquals("Address already in use")){
System.out.println("ERROR**Port TCP:"+defaultPort+" already in use by onother application");
}
e.printStackTrace();
}
Jeśli robisz to w wielu częściach kodu, sugeruję, abyś to zrobił i umieścił w swojej klasie, jak klasa narzędziowa. – ultrajohn
Dodatkowo, zrobię podklasę dla każdego rodzaju wyjątku BindException. – ultrajohn
no; jest to tylko na przykład tutaj; ale tnx do współpracy. –