더북(TheBook)

코드 3-13 공통적인 종료 지점을 단일 return 문으로 병합하기

[HttpPost]
public IActionResult Submit2(ShipmentAddress form) {
    if (!ModelState.IsValid) {
        goto Error; 
    }
    var validationResult = service.ValidateShippingForm(form);
    if (validationResult != ShippingFormValidationResult.Valid) {
        goto Error;
    }
    bool success = service.SaveShippingInfo(form);
    if (!success) {
        ModelState.AddModelError("", "Problem occurred while " +
        "saving your shipment information, please try again");
        goto Error; 
→ 중복된 종료 지점
    }
    return RedirectToAction("Index", "BillingForm");
Error:    → 목적지 레이블
    return RedirectToAction("Index", "ShippingForm", form);    → 공통적인 종료 코드
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.