例如,類型爲:java.net.BindException的異常可以引發「地址已在使用中」(試圖綁定另一個程序使用的端口)或「權限被拒絕」(您不有根權限來打開這個端口號)。我不擁有拋出BindException的類。區分同類型的異常
那麼,區分這些「不同」異常與相同類型的最佳做法是什麼?
我這樣做,但我不知道是否是最佳的做法:
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();
}
如果你在代碼的多個部分都這樣做,那麼我建議你把它拿出來放在它自己的類中,就像一個實用程序類。 – ultrajohn 2015-01-20 18:47:48
此外,我會做的是爲每種BindException生成一個子類。 – ultrajohn 2015-01-20 18:49:23
否;這只是例如在這裏;但tnx協作。 – 2015-01-20 19:00:32