在我的Spring MVC控制器我有這樣的方法:避免NumberFormatException的
public String myMethod(@RequestParam(defaultValue="0") int param) { ... }
當我傳遞一個字符串作爲我param
我顯然得到一個NumberFormatException
的值:
未能將類型'java.lang.String'的值轉換爲所需的類型'int';嵌套的例外是java.lang.NumberFormatException:對於輸入字符串:「測試」
是十分明顯......
所以我試圖找到一種方法,用戶重定向到一個默認的頁面時,這個錯誤正在發生。有沒有一種常見的方法來實現這一點?
在我考慮到位的int
的使用String
映射我param
的那一刻,是否這是可解析到int
,然後切換到適當的邏輯,但是這似乎是一個解決辦法,而不是解決方案。 ..
有沒有更好的方法來處理這個問題,並保持我的param
正確的類型綁定?
您可以創建一個@ControllerAdvice類,可以處理異常,如NumberFormatException異常,而從你的方法拋出該異常,併發送用戶到一個專門的錯誤消息 – DamCx
@DamCx好的,但我只需要在這種情況下重定向,而不是所有的'NumberFormatException'拋出我的應用程序 – davioooh
然後,創建一個特定的異常拋出的情況下,但你必須檢查因爲它在你我thod,因爲@ControllerAdvice類將無法區別。 我真的不確定SpringMVC如何處理異常,如果它們沒有被你的方法明確拋出 – DamCx