java 對外的異常信息常常需要轉化的, 沒有必要將錯誤信息直接拋出。例如
1. 實際沒有信息。 假若是NPE, getMessage(), 將是沒有信息。
2. 太過冗長, 例如一些數據庫報錯。錯誤信息很長。 例如:
\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'xxxx' for key 'xxxxxx'\n### The error may involve xxxxx.xxx.xxxbatchInsert-Inline\n### The error occurred while setting parameters\n### SQL: insert into xxx_table(xxx, xx, xxx) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW(), 0 ) , ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
3. 外部不好理解 或者不需要理解