簡體   English   中英

找不到資源時拋出異常是否正確

[英]is it correct to throw an exception when resource not found

找不到請求的資源時在服務器端引發異常是否可以?

客戶端收到未找到的404。 我擔心的是,在這種情況下在服務器端拋出異常是否正常。

很難假設您要對添加到問題中的詳細信息級別進行處理。

但是,如果您正確地處理了異常,則該方法可能沒有任何問題。 看看一些框架使用的方法:

JAX-RS

春季MVC

基本上,拋出保留的異常狀態碼不是理想的。 您應該在內部處理此異常,並准備自己的代碼,以使客戶端知道實際問題的完整信息就可以了。

從語義的角度來看:如果條件使得條件不可恢復,則應引發異常,並且必須通知開發人員。

服務器無法在會話開始時解析身份驗證請求-這是非常嚴重的情況,適當的例外是。

用戶未填寫必填字段,而是嘗試發送表格。 此問題可以解決,但例外可能是不良的設計。

我會說添加一個過濾器以捕獲404並添加有關404詳細信息的自定義信息。

在純REST實施的情況下,任何缺少資源ID和格式錯誤的URL都將返回404。就REST合同而言,兩種情況都正確,具有404響應。 但是有關缺少哪種類型資源的更多詳細信息將有助於使用它的客戶端進行適當的操作。

相關討論: 找不到剩余資源時返回404

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM