더북(TheBook)

이런 식으로 통합했을 때의 장점은 공통적인 종료 코드에 더 많은 것을 추가하려는 경우 한 곳에만 추가하면 된다는 것이다. 오류가 발생할 때 클라이언트에 쿠키를 저장한다고 가정해 보자. 다음과 같이 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);
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.