1. 程式人生 > 其它 >異常處理,多個拋異常如何區分是程式和自己丟擲的異常

異常處理,多個拋異常如何區分是程式和自己丟擲的異常

需求,我要程式在某一處發生錯誤,需要丟擲異常且返回資訊,但是如果是程式自己的異常返回固定的資訊。

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“

JavaScript