নীচে গো-র জন্য ত্রুটি হ্যান্ডলিং হ্রাস করার বিষয়ে আমার নেওয়া হল, এইচটিটিপিএল ইউআরএল প্যারামিটারগুলি পাওয়ার সময় নমুনাটি হ'ল:
( Https://blog.golang.org/erferences-are-values থেকে প্রাপ্ত নকশার প্যাটার্ন )
type HTTPAdapter struct {
Error *common.AppError
}
func (adapter *HTTPAdapter) ReadUUID(r *http.Request, param string, possibleError int) uuid.UUID {
requestUUID := uuid.Parse(mux.Vars(r)[param])
if requestUUID == nil {
adapter.Error = common.NewAppError(fmt.Errorf("parameter %v is not valid", param),
possibleError, http.StatusBadRequest)
}
return requestUUID
}
একাধিক সম্ভাব্য পরামিতিগুলির জন্য এটি কল করা নীচের মতো হবে:
adapter := &httphelper.HTTPAdapter{}
viewingID := adapter.ReadUUID(r, "viewingID", common.ErrorWhenReadingViewingID)
messageID := adapter.ReadUUID(r, "messageID", common.ErrorWhenReadingMessadeID)
if adapter.Error != nil {
return nil, adapter.Error
}
এটি কোনও রূপালী বুলেট নয়, ক্ষয়ক্ষতিটি হ'ল যদি আপনার একাধিক ত্রুটি থাকে তবে আপনি কেবলমাত্র শেষ ত্রুটিটি পেতে সক্ষম হন।
তবে এই উদাহরণে এটি তুলনামূলক পুনরাবৃত্তি এবং কম ঝুঁকিপূর্ণ, তাই আমি কেবল সর্বশেষ সম্ভাব্য ত্রুটিটি পেতে পারি।