मान लें कि मैं एक ASP.NET वेब API अनुप्रयोग का निर्माण कर रहा हूँ फेंक और यह निम्नलिखित संरचना है:फेंक या नहीं तरीकों ASP.NET वेब एपीआई परत द्वारा खपत से अपवाद
के रूप में आप आरेख से देख सकते हैं, एएसपी.नेट वेब एपीआई कोर डोमेन सेवा परत से बात करेगा (उदाहरण के लिए MembershipService
कक्षा जिसमें GetUsers
, CreateUser
इत्यादि जैसी विधियां हैं) और मेरी सेवा कक्षाएं एक या एकाधिक भंडारों से निपटने के लिए बात करेंगे संचालन।
यह बहुत स्पष्ट है कि एक सेवा संचालन (जैसे MembershipService.CreateUser
विधि) कई कारणों से विफल हो जाएगा (अनमेट स्थितियां, भंडार द्वारा छोड़ा गया अपवाद आदि) और यह वह स्थान है जहां मुझे संदेह है।
public class OperationResult {
public OperationResult(bool isSuccess) : this(isSuccess) {
IsSuccess = isSuccess;
}
public OperationResult(bool isSuccess, Exception exception) : this(isSuccess) {
Exception = exception;
}
public bool IsSuccess { get; private set; }
public Exception IsSuccess { get; private set; }
}
public class OperationResult<TEntity> : OperationResult {
public OperationResult(bool isSuccess)
: base(isSuccess) { }
public OperationResult(bool isSuccess, Exception exception)
: base(isSuccess, exception) { }
public TEntity Entity { get; set; }
}
या आपको लगता है कि और की तरह है कि सेवा के तरीकों सार नहीं करना चाहिए अपवाद कार्य करें:
आपको लगता है कि सेवा कक्षाएं अपवादों को संभालने और इस तरह के एक नीचे के रूप में परिणाम वस्तु के कुछ प्रकार वापसी करना चाहिए सीधे या अप्रत्यक्ष रूप से अपवाद फेंकना चाहिए (ऑपरेशन के लिए विशिष्ट एक नया अर्थपूर्ण अपवाद प्रकार बनाना और इसके अपवाद के रूप में फेंक दिया अपवाद डालना चाहिए)?
कौन इस प्रश्न को रचनात्मक नहीं बनाना चाहता था? कृपया मुझे बताएं कि आप उच्च cuz प्राप्त करने के लिए क्या उपयोग करते हैं, जहां तक मैं देख सकता हूं। – tugberk