묻고 답해요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 1편
서로를 참조하고 있는 클래스의 예외던지기에 관해
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요강의를 듣다가 궁금한 점이 생겼습니다.예외처리 방법 중에 2번째 방법인 예외를 상위로 던지는 방법이 있다고 하셨는데, 만약에 서로를 참조하고 있는 클래스가 있다고 가정을 하고 이 때, 각각의 클래스안에 상대의 객체를 생성해서 상대의 클래스로 예외를 던지면 stack overflow 오류가 발생함을 확인하였습니다. 이 경우 다소 인위적으로 상위 클래스로 예외를 던져지지 못하였는데, 혹시 실무에서도 예외를 상위 클래스로 던지지 못하여 stack overflow error가 발생하는 사례가 있는지 궁금합니다.
-
미해결
Spring boot에서 일반 예외처리와 api예외처리 한번에 하는 좋은 방법 없을까요?
@Slf4j @ControllerAdvice @RequiredArgsConstructor public class ExceptionControllerAdvisor { private final HttpServletRequest httpServletRequest; private final HttpServletResponse httpServletResponse; @ExceptionHandler(RollbackTriggeredException.class) public ResponseEntity<ErrorResponse> rollBackException(RollbackTriggeredException e) throws IOException { if (httpServletRequest.getRequestURI().startsWith("/api")) { int statusCode = e.getStatusCode(); ErrorResponse body = ErrorResponse.builder() .code(String.valueOf(statusCode)) .message(e.getMessage()) .validation(e.getValidation()) .build(); return ResponseEntity.status(statusCode) .body(body); } else { httpServletResponse.sendError(e.getStatusCode()); return null; } } } spring boot와 thymeleaf를 사용해서 이런식으로 api 요청일 경우 해당 요청 uri의 앞에 api를 넣어서 api가 앞에있으면 ResponseEntity객체를 이용해서 RuntimeException을 상속받은 커스텀 예외(RollbackTriggeredException)을 처리하고, api 가 없다면 HttpServletResponse객체의 sendError 메서드를 사용해서 에러를 발생시킨다음 Spring boot의 예외처리 매커니즘을 통해 에러페이지로 이동하도록 코드를 짜보았습니다. 하지만 else부분에 else를 작성해줘야한다는 점이 좀 좋지 않은 코드는 아닐까 하는 생각이들게 되더라고요??일반예외(페이지 이동하다 예외가 발생했을경우)와 api예외(ajax요청하다 예외가 발생했을 때)를 동시에 처리하는 좋은 방법있으면 알려주신다면 감사하겠습니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
에러 java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
[질문 내용]강의 내용 중 "JPA와 DB 설정 동작 확인"의 20분 경부터 나오는 ./gradlew clean build 를 실행하다가 -> 아래 화면 캡처와 같이 java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132 에러가 발생했습니다. Test 파일 2개 모두 동일한 에러 메시지입니다. 커뮤니티의 답변 및 구글 검색을 통해 문제를 해결하려 했으나, 해결하지 못해 문의드립니다. (커뮤니티 답변에서 저와 동일한 에러를 만난 경우는 진도가 더 나간 상태에서 발생한 에러였으며, 구글링에서는 대부분 AWS배포와 관련되어 이 에러가 발생하고 그것을 해결한 케이스였습니다.) Test 파일 2개는 아래와 같이 작성되었습니다. 커뮤니티 답변을 모두 확인한 것은 아니었기에, 혹시 저와 동일한 상황에서 동일한 에러가 해결된 경우가 있다면 링크를 부탁드립니다. (혹, 답변을 위해 더 공유해야 할 내용이 있다면 알려주세요)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ExceptionResolver와 BasicErrorController의 분기점을 모르겠습니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 공통 상황 WAS -> Servlet -> Controller (예외 발생) @ExceptionHandler를 사용한 API 예외 처리 애플리케이션 BasicErrorController를 사용한 HTML 오류 페이지 처리 애플리케이션 질문 Q1. BasicErrorController와 ExceptionResolver 모두 적용된 프로그램 흐름이 궁금합니다. ExceptionResolver와 BasicErrorController의 분기점을 모르겠습니다. Q2. Accept: text/html HTTP 요청이 들어왔을 때, BasicErrorController는 내부 호출(WAS -> Servlet -> BasicErrorContoller)이 발생하는지, 아닌지 궁금합니다. Q3. Accept: text/html HTTP 요청이 들어왔을 때, @ResponseStatus 값에 관계없이 무조건 500 HTML 에러 페이지를 반환하고 있습니다. @ExceptionHandler와 BasicErrorContoller의 조합이 어떻게 가능한지 모르겠습니다. 강의 코드에서 MyHandlerExceptionResolver를 없앴습니다. 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part8: Entity Framework Core
Unhandled exception
안녕하세요. 강사님. 강의 잘 듣고 있습니다. 'CRUD 실습' 을 진행하는 과정에서 에러가 났는데, 구글신에 검색해봐도 딱히 해결법을 찾지 못해 글 남깁니다. 올려주신 코드 확인해봐도 똑같고, forceReset 이 true 면 Db 새로 잘 만드는데 forceReset 을 false 로 하고 실행하면 스샷과 같이 Exception 이 납니다. 이유가 무엇일까요..
-
미해결
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0 *
public static void main(String[] args) { System.out.println("(1!2@3^4~5)"+"->"+delChar("(1!2@3^4~5)","~!@#$%^&*()")); } static String delChar(String src, String delCh) { for(int i=0;i<=delCh.length();i++) { char c = delCh.charAt(i); String sc = c+""; src = src.replaceAll(sc,""); } return src; }--------------------------------------------------------------------------------------------------------------------------------- Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0 *예외가 계속 뜹니다.무엇이 문제이며, 어떻게 고쳐야하는지 알려주실 수 있을까요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
http-exception.filter.ts 파일 내용 중 질문이 있습니다.
const error = exception.getResponse() as | string | { error: string; statusCode: number; message: string | string[] }; 강의 중에 http-exception.filter.ts 파일에서 error 변수를 위와 같이 할당을 하는데 as | string 뒤에 있는 타입을 { error: string, statusCode: number; message: string | string[] };로 받는데 객체의 속성들을 특별하게 넣어준 이유가 있나요? 단순히 { error: string }로만 처리해도 다른 속성 값들이 자동으로 들어오기 때문에 출력할 때는 문제가 없는 것 같은데 정확한 타입을 제공하기 위해서 라던가 등 특별한 이유가 있는지 궁금합니다.