이런 식으로 통합했을 때의 장점은 공통적인 종료 코드에 더 많은 것을 추가하려는 경우 한 곳에만 추가하면 된다는 것이다. 오류가 발생할 때 클라이언트에 쿠키를 저장한다고 가정해 보자. 다음과 같이 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);
}