이런 식으로 통합했을 때의 장점은 공통적인 종료 코드에 더 많은 것을 추가하려는 경우 한 곳에만 추가하면 된다는 것이다. 오류가 발생할 때 클라이언트에 쿠키를 저장한다고 가정해 보자. 다음과 같이 Error 레이블 뒤에 원하는 코드를 추가하기만 하면 된다.

    코드 3-14 공통 종료 코드에 쉽게 다른 코드를 추가할 수 있다

    [HttpPost]
    public IActionResult Submit3(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 information, please try again");
            goto Error;
        }
        return RedirectToAction("Index", "BillingForm");
    Error:
        Response.Cookies.Append("shipping_error", "1");    → 쿠키를 저장하는 코드
        return RedirectToAction("Index", "ShippingForm", form);
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.