MVC의 예외 처리 [예외를 처리하는 상위 2가지 방법]
게시 됨: 2020-12-29MVC의 예외 처리는 특정 사양과 조건이 필요하고 고유한 요구 사항이 있는 기간 업무 응용 프로그램을 만들 때 주로 사용됩니다.
예외 처리가 무엇이며 응용 프로그램에 어떻게 도움이 되는지 알아보겠습니다.
목차
예외 처리란 무엇입니까?
특정 방법이 필요한 예외적인 상황을 처리하고 대응하는 과정입니다. 이는 결과를 향상시키고 모든 요구 사항이 적절하게 처리되도록 하기 위해 비즈니스 응용 프로그램에 통합되어야 합니다.
이러한 예외가 처리되는 두 가지 중요한 방법이 있습니다.
- 캐치 앤 블록 방식
- 응용 프로그램 오류 처리 방법입니다.
그러나 이러한 방법이 프로세스에 사용되는 유일한 방법은 아닙니다.
여기에서는 MVC에서 예외를 관리하는 데 사용할 수 있는 다양한 단계와 기술에 대해 설명합니다.
Try-Catch 처리 방법
catch 및 블록 방법은 MVC 기반 응용 프로그램 에서 예외 처리에 사용되는 전통적인 방법으로 간주됩니다 . 이 방법을 사용하여 오류 정보를 기록합니다.

노력하다
{ 예외 추가;}
catch(예외 이름)
{
반환 보기("오류");
}
try 블로그에 예외 조건을 입력하고 catch 블록에 대한 예외 이름을 추가합니다. catch 블록에서 예외가 포착되면 언급한 오류를 반환합니다.
이것은 또한 응용 프로그램 내의 모든 오류를 처리하고 기록하는 데 사용할 수 있습니다.
OnException 메서드
이 메서드를 사용하면 컨트롤러 클래스 내에서 OnException 메서드를 재정의할 수 있습니다. 오류 코드 500은 MVC에서 예외 처리로 인해 기록된 모든 오류를 처리하는 데 사용됩니다 .
기본적으로 try 루프 없이 이 메서드를 사용하여 예외의 보기를 기록하고 지정할 수 있습니다. 이 방법을 시작하기 위해 web.config에서 <customErrors> 구성을 활성화할 필요는 없습니다.
공개 클래스 HomeController: 컨트롤러
{
공개 ActionResult 연락처()
{
문자열 메시지 = null;
ViewBag.Message = msg.Length;
반환 보기();
}
보호된 재정의 무효 OnException(ExceptionContext filterContext)
{
filterContext.ExceptionHandled = 참;
//오류 기록!!
// 액션으로 리다이렉트
filterContext.Result = RedirectToAction("오류", "내부 오류");
// 또는 특정 뷰를 반환
filterContext.Result = 새로운 ViewResult
{
ViewName = "~/Views/Error/InternalError.cshtml"
};
}
}
위의 코드를 보면 OnException이 void 메서드이고 ExceptionContext 개체를 인수로 사용한다는 것을 알 수 있습니다.
이 인수에는 오류를 기록하는 데 필요한 모든 정보가 포함됩니다. ExceptionHandled=true로 설정하면 특정 컨트롤러에서 생성된 작업을 쉽게 기록할 수 있습니다.
핸들오류 속성
이것은 애플리케이션의 MVC 내에서 예외를 처리하고 오류를 관리하는 또 다른 인기 있는 방법입니다. 액션 메서드나 컨트롤러에 의해 생성된 오류를 발견했다면 이 메서드를 사용해야 합니다.
이 속성을 사용하여 특정 예외에 대한 사용자 정의 보기를 표시하도록 선택할 수 있습니다. 이는 작업 메서드 또는 컨트롤러에서 발생할 수 있습니다.
다시 말하지만, 이 방법은 코드 500으로 오류를 관리할 때도 사용됩니다. 이 방법을 사용하여 예외를 기록할 수 없습니다.

이 속성을 추가하는 특별한 방법이 있습니다. FilterConfig.RegisterGlobalFilters() 메서드 안에 HandleError 속성 필터를 추가해야 합니다.
이와 함께 web.config 내에서 <CustomErrors mode = "on"> 사용자 지정 오류 모드가 항상 on으로 설정되어 있는지 확인해야 합니다. 이 시점에서 활성 모드에 속성을 추가할 수 있습니다.
공개 클래스 HomeController: 컨트롤러
{
[오류 처리]
공개 ActionResult 연락처()
{
문자열 메시지 = null;
ViewBag.Message = msg.Length;
반환 보기();
}
}
방금 언급한 코드는 컨텍스트 및 예외 처리 요구 사항에 가장 적합합니다.
여기에서 속성은 Contact() 작업 메서드에 대해 구성됩니다. 프로세스가 컴파일되면 보기 모드에 표시된 Error.cshtml을 볼 수 있습니다.
예외가 발생한 경우에만 발생합니다. 이것은 모든 예외적인 경우의 기본 보기입니다. 또한 이 속성을 사용하여 다양한 유형의 예외를 관리하도록 다양한 페이지를 구성할 수 있습니다.
이 속성은 오류 처리에 완벽하게 작동하고 모든 유형의 구성을 관리하지만 모든 곳에서 작동하지 않을 수 있습니다. 애플리케이션에 도움이 된다고 생각되는 경우에 선택하십시오.
메서드는 로깅 예외를 지원하지 않습니다. 코드 500 내의 HTTP 예외만 캡처할 수 있습니다. 다른 컨트롤러의 예외는 캡처할 수 없습니다. 따라서 모든 경우와 필요에 대해 고려할 수 있는 속성이 아닙니다.
HandleError에서 상속
이 방법을 사용하여 예외를 처리할 수도 있습니다. 우리가 논의한 위의 방법은 컴포넌트를 재사용하는 것을 허용하지 않으며, 이는 단점으로 간주될 수 있습니다.
기록해야 하는 모든 예외에 대해 계속 코딩해야 하는 경우 작동할 수 없습니다.
결과적으로 이 확장을 사용해야 합니다. 이를 통해 HandleError 속성을 상속하고 특정 컨트롤러에서 사용할 수 있습니다. 결과적으로 너무 자주 코딩하지 않고도 예외를 처리할 수 있습니다.
또한 읽기: 예외 처리 인터뷰 질문
Application_Error 이벤트
Application_Error 이벤트는 애플리케이션 오류를 처리하고 예외를 관리하는 또 다른 방법입니다. 이 부분에서는 global.asax 파일 내에서 Application_Error 이벤트를 제어해야 합니다.
MVC에서 모든 유형의 오류 코드 및 예외 처리에 대해 이 이벤트를 트리거할 수 있으므로 사용하기 쉽고 예외를 처리하는 가장 좋은 방법 중 하나입니다.
이것은 응용 프로그램 내에서 처리되지 않는 모든 예외를 관리하는 데 사용할 수 있는 기본 오류 로깅 방법을 사용합니다.
HTTP 오류 관리
여기에 언급된 방법은 HTTP 예외를 처리할 수 없습니다. 우리는 "파일을 찾을 수 없음"과 같은 예외 및 얻을 수 있는 기타 일반적인 오류 메시지에 대해 이야기하고 있습니다.
이러한 예외를 관리하려면 구문 내에 오류 세부 정보와 오류 코드를 입력해야 합니다.
구문을 해제하기 전에 응용 프로그램의 일부로 얻을 수 있는 모든 가능한 오류 코드와 메시지를 기록해 두어야 합니다.
LOB(기간 업무) 응용 프로그램에 대한 지식을 향상하고 프로그래밍 언어에 능숙 해지려면 upGrad 에 가입하십시오 .
다양한 과정과 다양한 직업 옵션을 통해 직업 기회를 확대할 수 있습니다.
전문가와 연결하거나 전화를 예약하여 맞춤형 옵션에 대해 자세히 알아보세요.
세계 최고의 대학 에서 소프트웨어 엔지니어링 과정 에 등록하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론
MVC에서 예외 처리를 처리 할 때 선택한 방법에서 가능한 모든 오류를 기록할 수 있는지 확인해야 합니다. 구성 요소를 재사용하고 모든 애플리케이션 오류를 관리할 수 있어야 합니다. Java의 예외 처리에 대해 알아보세요.
가능한 모든 예외를 처리하는 단일 메소드를 원하면 Global Application_Error 메소드를 선택해야 합니다. <CustomErrors>와 함께 모든 오류를 기록하고 Web.Config에 기록되도록 합니다.
이 방법을 사용하면 오류가 발생할 때 사용자가 특정 페이지로 리디렉션됩니다. 예외 처리는 ASP.Net MVC를 사용한 응용 프로그램 개발의 핵심 개념 중 하나입니다.
이 기사가 MVC의 예외 처리에 대해 배우는 데 통찰력이 있기를 바랍니다 . 다양한 응용 프로그램에 대해 자세히 알아보려면 블로그를 탐색하십시오.
전체 스택 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 PG 프로그램을 확인하십시오. 이 프로그램은 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

