परिणाम के बाद से एक संभावना का उपयोग क्यों करें?
शायद क्योंकि (जावा) प्रोग्रामर के रूप में आप अपवाद फेंकने के आदी हैं जब आवेदन के विशेष नियम टूट जाते हैं? कुछ स्ट्रिंग को किसी नंबर पर कनवर्ट करें और आपको NumberFormatException
मिल सकता है, किसी सरणी में गलत इंडेक्स का उपयोग करें और आपको ArrayIndexOutOfBoundsException
मिल जाता है, जो आपको अनुमति नहीं है और SecurityException
आदि प्राप्त करता है। आप नियमित प्रतिक्रिया के दौरान अपवाद फेंकने के लिए उपयोग होते हैं "बनाया नहीं जा सकता है (गलत इनपुट या कुछ प्रोसेसिंग त्रुटि से हो)।
जब आप नियमित प्रतिक्रिया वापस नहीं कर सकते हैं, तो आपको ग्राहक को एक त्रुटि प्रतिक्रिया वापस करनी होगी। आप इसे अपवाद फेंकने या हाथ से प्रतिक्रिया बनाने के साथ कर सकते हैं। यह आपके क्लाइंट के लिए एक ही बात है, लेकिन यह आपके सर्वर साइड कोड के लिए एक ही बात नहीं है।
अपवाद फेंकना आपके कोड क्लीनर को आसान बनाता है, इस बारे में कारणों को आसान बनाता है और को समझना आसान बनाता है। विचार WebApplicationException
को उपclass करना है और इसके अपने अर्थपूर्ण अपवादों को बनाना है (उदा। ProductNotFoundException extends WebApplicationException { ... }
, AccessDeniedException extends WebApplicationException { ... }
या exception mapper के साथ अपवादों का पुन: उपयोग करना)।
यह तो throw new ProductNotFoundException()
या throw new AccessDeniedException()
लिए क्लीनर है और ढांचे एक Response
हर बार के निर्माण के बजाय इसे संभाल और बाद में इसे बनाने की क्या कोड के उस अनुभाग में क्या हो रहा है यह पता लगाने के लिए इस्तेमाल किया विवरण का पालन करते हैं।
मैं सफलता के मामलों की बजाय विफलता मामलों के लिए 'WebAplicationException' के रूप में देखता हूं। यदि आपके पास ऐसी विधि है जो सफलता के मामले में एक जेएक्सबी ऑब्जेक्ट को सामान्य रूप से वापस (कहें) वापस कर देगी, तो 'WebAplicationException' को फेंकने से विफलता मामले में किसी अन्य प्रकार के डेटा को वापस करने का एक तरीका प्रदान किया जाता है। लेकिन यदि सफलता के मामले में 'प्रतिक्रिया' वापस करने के लिए विधि घोषित की गई है तो अपवाद दृष्टिकोण की कम आवश्यकता है। –
'प्रतिक्रिया' बनाम 'WebAplicationException' के कुछ विचारों के लिए [जर्सी दस्तावेज़] (http://jersey.java.net/nonav/documentation/latest/jax-rs.html#d4e435) पर एक नज़र डालें। सफलता के लिए, हमेशा 'प्रतिक्रिया' का उपयोग करें। –
@IanRoberts मैं इस तथ्य को समझता हूं कि आम तौर पर असफलताओं के लिए उपयोग किया जाता है और दूसरे सफलता परिदृश्यों के लिए उपयोग किया जाता है। लेकिन मेरा प्रश्न अधिक तकनीकी है यानी क्या इस बारे में कोई अंतर है कि फ्रेम अपवाद द्वारा प्रतिक्रिया या संसाधित कैसे किया जाता है यदि यह अपवाद है या नियमित प्रतिक्रिया है? (मैंने जर्सी टैग जोड़ा है)। –