springboot 이상 처리 기본 규범

배경 분석
프로젝트 의 개발 에서 밑바닥 의 데이터 논리 조작 과정 이 든 업무 논리의 처리 과정 이 든 통제 논리의 처리 과정 이 든 모두 예측 할 수 있 고 예측 할 수 없 는 각종 이상 을 만 날 수 밖 에 없다.이상 처 리 를 잘 하면 시스템 에 좋 은 보호 작용 을 하 는 동시에 사용자 의 체험 을 크게 향상 시 킬 것 이다.
이상 처리 분석
개술
자바 프로젝트 에서 이상 처리 방식 은 두 가지 가 아 닙 니 다.trycatch 작업 을 수행 하거나 throw 작업(다른 대상 에 게 던 져 처리)을 수행 합 니 다.어떤 방식 을 사용 하 든 그 목적 은 우리 시스템 이 이상 에 대해 피드백 을 하도록 하 는 것 입 니 다.그러나 현재 의 문 제 는 우리 가 어떻게 이런 피드백 코드 의 작성 을 간단 하면 서도 직관 적 이 고 우호 적 으로 만 드 느 냐 하 는 것 이다.
처리 규범
우 리 는 이상 을 처리 하 는 과정 에서 보통 일정한 디자인 규범 을 지 켜 야 한다.예 를 들 어:
4.567917.이상 을 포획 할 때 던 진 이상 과 완전히 일치 하거나 이상 을 포획 하 는 것 은 이상 한 부모 유형 입 니 다
  • Runtime Exception 을 직접 던 지 는 것 을 피하 고 Exception 이나 Throwable 을 던 지 는 것 을 허용 하지 않 으 며 업무 적 의미 가 있 는 사용자 정의 이상(예 를 들 어 ServiceException)을 사용 해 야 합 니 다
  • 4.567917.이상 을 캡 처 한 후 처리 해 야 합 니 다(예 를 들 어 기록 로그).그것 을 처리 하지 않 으 려 면 호출 자 에 게 이상 을 던 져 야 합 니 다4.567917.최 외층 의 논 리 는 반드시 이상 을 처리 하고 이 를 사용자 가 이해 할 수 있 는 내용 으로 전환 시 켜 야 한다
  • 중복 되 는 코드(Don't Repeat Yourself),즉 DAY 원칙 이 나타 나 지 않도록 합 니 다.
  • SpringBoot 프로젝트 의 이상 처리
    준비 작업
    첫 번 째 단계:프로젝트 나 module 을 만 들 고 웹 의존 도 를 추가 합 니 다.코드 는 다음 과 같 습 니 다.
    
    <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    두 번 째 단계:프로젝트 접근 포트 를 80 으로 수정 합 니 다.예 를 들 어
    
    server.port=80
    
    세 번 째 단계:컨트롤 러 클래스 를 정의 합 니 다.코드 는 다음 과 같 습 니 다.
    
    package com.cy.pj.arithmetic.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class ArithmeticController {
    
     @RequestMapping("doCompute/{n1}/{n2}")
     @ResponseBody
     public String doCompute(@PathVariable Integer n1, 
     @PathVariable Integer n2){
      Integer result=n1/n2;
      return "Result is "+result;
     }
    }
    네 번 째 단계 시작 항목 에 대한 접근 테스트
    브 라 우 저 주소 표시 줄 에 입력http://localhost/doCompute/10/2출력 결 과 를 검사 합 니 다.
    Result is 5
    기본 이상 처리
    브 라 우 저 주소 표시 줄 에 입력http://localhost/doCompute/10/0출력 결 과 를 검사 합 니 다.

    이러한 기본 이상 처리(spring boot 제공)에 대해 서 는 사용자 체험 이 그다지 우호 적 이지 않 습 니 다.더욱 우호 적 인 이상 정 보 를 보 여주 기 위해 서 는 이상 에 대해 사용자 정의 처 리 를 해 야 합 니 다.
    스스로 try 이상 처리
    제어 층 방법 에서 우 리 는 try catch 처 리 를 할 수 있 습 니 다.예 를 들 어:
    
     @RequestMapping("doCompute/{n1}/{n2}")
     @ResponseBody
     public String doCompute(@PathVariable Integer n1, 
     @PathVariable Integer n2){
       try{
       Integer result=n1/n2;
       return "Result is "+result;
       }catch(ArithmeticException e){
       return "exception is "+e.getMessage();
       }
     } 
    하나의 Controller 클래스 에는 보통 여러 가지 방법 이 있 습 니 다.이 여러 가지 방법 에서 try 문 구 를 써 서 이상 처 리 를 하면 중복 코드 의 작성 을 가 져 올 수 있 습 니 다.유지 하기 가 쉽 지 않 습 니 다.
    컨트롤 러 내부 정의 이상 처리 방법
    Controller 클래스 에 이상 처리 방법 을 추가 합 니 다.코드 는 다음 과 같 습 니 다.
    
    @ExceptionHandler(ArithmeticException.class)
    @ResponseBody
    public String doHandleArithmeticException(ArithmeticException e){
     e.printStackTrace();
     return "          ,     "+e.getMessage();
    }
    @ExceptionHandler 주석 설명 방법 은 이상 처리 방법(주석 에 있 는 이상 유형 은 처리 가능 한 이상 유형)입 니 다.만약 Controller 류 의 논리 적 방법 에 이상 이 생 긴 후 처리 이상 이 없 으 면 Controller 류 에 이상 처리 방법 이 정의 되 어 있 는 지,정의 되 어 있 으 면 던 진 이상 유형 을 처리 할 수 있 습 니 다.이상 처리 방법 으로 이상 을 처리 합 니 다.
    제어 층 의 전역 이상 처리 클래스 및 방법 정의
    프로젝트 가 여러 개의 제어 층 류 에서 여러 개의 공통성 이상 처리 방법 으로 정 의 될 때 우 리 는 이러한 방법 을 공공 부모 대상 에서 추출 할 수 있 지만 이런 방식 은 강 한 결합 실현 으로 코드 유지 에 불리 하 다.또한 spring 프레임 워 크 에서 웹 모듈 이 정의 하 는 전역 이상 처리 규범 을 통 해 실현 할 수 있 습 니 다.예 를 들 어 전역 이상 처리 류 를 정의 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다.
    
    package com.cy.pj.common.web;
    
    @RestControllerAdvice
    public class GlobalExceptionHandler {
    
     @ExceptionHandler(ArithmeticException.class)
     public String doHandleArithmeticException(ArithmeticException e){
      e.printStackTrace();
      return "          ,     "+e.getMessage();
     }
    } 
    그 중에서@RestController Advice 주해 에서 설명 한 종 류 는 전역 이상 처리 류 입 니 다.제어 층 방법 중의 이상 이 스스로 포착 되 지 않 았 고 내부 의 이상 처리 방법 도 정의 되 지 않 았 습 니 다.바 텀 기본 값 은 전체 이상 처리 류 를 찾 아 대응 하 는 이상 처리 방법 을 호출 하여 이상 처 리 를 합 니 다.
    총결산
    spring boot 이상 처리 기본 규범 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 spring boot 이상 처리 규범 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기