Computer >> 컴퓨터 >  >> 프로그래밍 >> Ruby

Ruby에서 사용자 정의 예외 마스터하기:오류 처리 및 관찰 가능성 향상

예외를 사용자 정의하는 것은 일반적으로 소프트웨어 개발 중에 일반적인 문제가 아닙니다. 그러나 관찰 도구에서 오류를 포착하고 문제를 정확하고 신속하게 식별할 수 없는 경우 예외에 대한 추가 정보와 세부정보가 필요할 수 있습니다.

이 문서에서는 Ruby에서 예외를 사용자 정의하고 오류 정보 부족으로 인해 발생할 수 있는 향후 문제를 완화하는 방법을 보여줍니다.

바로 들어가 보겠습니다!

간단한 참고사항

이 게시물은 AppSignal을 사용한 Ruby 디버깅에 대한 자연스러운 진행이므로 디버깅 개요 및 사용자 정의 예외에 대한 소개를 먼저 읽어 보는 것이 좋습니다.

Ruby를 사용하여 예외를 복구하는 방법

Ruby에는 Exception이라는 클래스가 있습니다. , 오류 처리 클래스가 상속됩니다. 이 섹션에서는 사용자 정의 예외를 만들기 전에 Ruby의 구조적 예외 흐름을 더 잘 이해할 것입니다.

Exception Ruby의 주요 예외 클래스이며 rescue Exception Exception에서 상속된 모든 예외를 포착합니다. . Ruby에서 내부적으로 사용되는 모든 예외를 포착하므로 앱에서 이를 사용하는 것은 모범 사례가 아닙니다.

Ruby에서 예외를 복구하는 가장 쉬운 방법은 begin ... rescue을 생성하는 것입니다. 아래 예와 같은 코드 블록:

 

Exception 이후 모든 예외를 포착하려면 더 구체적인 것을 사용하여 원하는 오류만 필터링하고 가져오도록 노력해야 합니다. 한 가지 예는 StandardError입니다. 클래스는 Ruby의 내부 예외를 무시하여 애플리케이션 코드 오류와 관련된 예외를 잡는 데 사용되는 표준 구조자입니다.

StandardException를 잡으려면 , 아래 예를 사용할 수 있습니다:

 

또는 예외 클래스가 명시되지 않은 경우 Ruby는 StandardException에서 처리한 예외를 반환합니다. 수업.

 

Ruby로 사용자 정의 예외를 생성하려면 아마도 StandardError에서 상속되는 클래스를 생성할 것입니다. . 이에 대해서는 다음 몇 섹션에서 다루겠습니다.

예외에 대해 자세히 알아보고 상속하기에 가장 적합한 예외를 찾으려면 Ruby의 예외 목록을 확인하세요.

Ruby 예외에 추가 정보 추가

관련 정보를 보내지 않고 새로운 예외를 생성하면 문제를 디버깅(식별 및 수정)하는 데 효과적으로 도움이 되지 않습니다. 오류 세부정보를 추가해야 합니다. 여기서는 객체의 정보를 사용자 정의 예외로 전달하는 방법을 살펴보겠습니다.

기록하려는 데이터를 수신하기 위해 새로운 사용자 정의 예외를 생성해 보겠습니다. 이전 섹션에서 언급한 것처럼 사용자 정의 예외는 StandardError에서 상속되어야 합니다. .

간단한 Rails 프로젝트를 사용하여 이 구현을 테스트할 수 있습니다. exceptions라는 새 폴더를 만듭니다. app 내부 폴더 및 custom_exception.rb이라는 클래스 Rails 프로젝트에서.

 

이 예외 클래스에서는 로그에 표시되어야 하는 모든 정보를 정의할 수 있으며 데이터에 대해 네 가지 속성을 사용합니다.

  • 예외를 열거하는 코드
  • 이름
  • 정보 메시지
  • Ruby에서 이미 제공한 예외에 대한 내부 정보 세부정보

이제 begin...rescue를 생성합니다. CustomException를 올리는 블록 매개변수를 예외 속성에 전달합니다.

 

이는 유용해 보이므로 구현을 계속하고 이 데이터를 사용하여 예외 로그를 사용자 정의하겠습니다.

Ruby에서 예외 확장

예외를 확장하면 사용자 정의를 보다 구체적이고 재사용 가능한 수준으로 높일 수 있습니다. Ruby에는 다양한 오류 유형에 대한 몇 가지 예외가 있는 것처럼 시스템에서도 이 프로그래밍 라인을 따를 수 있습니다.

다음으로, 예외를 재정의하고 확장이 필요한 컨텍스트에서 사용하는 방법을 이해해 보겠습니다.

로그에서 정보를 찾는 것은 고통스러운 활동입니다. 개발자는 오류나 검색 및 필터링 방법에 대한 자세한 정보를 포함하지 않은 것에 대해 스스로를 비난하는 경우가 많습니다. 이를 제공하는 모니터링 도구를 사용하지 않는 경우 의미 있는 데이터를 포함하면 가까운 미래에 비용을 절약할 수 있습니다.

전문가 팁 :AppSignal에서 사용자 정의 예외를 설정하고 추적하는 방법에 대한 자세한 내용은 AppSignal을 사용하여 Ruby 디버깅 게시물의 'AppSignal을 사용하여 Ruby에서 예외 디버깅' 섹션을 확인하세요.

아래 예에서는 로그의 예외 표시를 사용자 정의합니다. 처음에는 단순히 데이터를 보여주는 가볍고 예쁜 방법이라고 생각할 수도 있습니다. 그러나 데이터에 사용된 키워드는 오류를 찾고 애플리케이션을 모니터링하는 사람에게 도움을 주는 핵심입니다.

Gemfile에 아래 코드를 포함시켜 프로젝트에 colorize gem을 추가하세요.

 

번들을 실행하여 colorize gem을 설치하고 Rails 애플리케이션을 실행하세요.

 

이제 예외 클래스에서 gem을 가져옵니다. 속성을 형식화된 방식으로 인쇄하면 중요한 오류를 쉽게 확인하고 빠르게 찾을 수 있습니다.

 

이 시각적 사용자 정의 결과를 확인하고 몇 가지 옵션을 테스트하여 형식과 스타일을 만드세요.

Ruby에서 사용자 정의 예외 마스터하기:오류 처리 및 관찰 가능성 향상

마무리 및 다음 단계

이 게시물에서는 로그에서 Ruby 예외를 사용자 정의하고 강조 표시하는 방법을 다루었습니다. 다른 많은 사용자 정의도 가능하지만 가장 중요한 것은 애플리케이션과 관련된 예외를 처리하는 것입니다. 그리고 Rails가 이미 적용한 것처럼 모든 예외에 동일한 서식 스타일을 적용하지 마십시오.

즐거운 코딩 되세요!

추신 Ruby Magic 게시물이 보도되는 즉시 읽으려면 Ruby Magic 뉴스레터를 구독하고 단 하나의 게시물도 놓치지 마세요!

Ruby에서 사용자 정의 예외 마스터하기:오류 처리 및 관찰 가능성 향상

브레나 몬테이로

객원 저자인 Brena는 새로운 개발자 멘토링에 열정을 갖고 있으며 고성능 팀을 개발하고 이끄는 데 경험이 있는 기술 책임자입니다. 그녀는 확장 가능한 API 구축 및 클라우드 서비스 간 통합 경험이 있으며 혁신적인 아키텍처에 열정을 갖고 있으며 확장 현실(XR) 견습생입니다.

Brena Monteiro의 모든 기사