異常處理,多個拋異常如何區分是程式和自己丟擲的異常
阿新 • • 發佈:2021-08-20
需求,我要程式在某一處發生錯誤,需要丟擲異常且返回資訊,但是如果是程式自己的異常返回固定的資訊。
try {
throw new Exception("訂單號不存在!");
} catch (RuntimeException e) {
log.error("發票作廢異常,異常原因是:", e);
resMap.put("code", HttpStatus.INTERNAL_SERVER_ERROR);
resMap.put("msg", "發票作廢異常");
} catch (Exception e){ log.error("發票作廢異常,異常原因是:", e);
resMap.put("code", HttpStatus.INTERNAL_SERVER_ERROR);
resMap.put("msg", e.getMessage()); }
如果是自己丟擲異常,可以在之前抓住,使用Exception 或者繼承它的其他異常。在程式執行中均是RuntimeException 所以,自己丟擲的異常是執行異常的子類就可以
也會在後面抓住,然後就可以獲取丟擲異常的message了,這裡message是自己丟擲異常的資訊,如果是程式本身就是同意發票作廢失敗資訊,也不會提示英文錯誤程式碼::”
Read timed out
java.net.SocketTimeoutException: Read timed out“