Errors in programs
- compile-time 에러
- 컴파일러가 에러를 발생시키고 object 파일을 만들지 않는다.
- e.g.) syntax error
- Run-time 에러
- 컴파일러는 아무런 에러를 발생시키지 않고 object 파일을 생성한다.
- 런타임에, 프로그램은 에러 때문에 더 동작하지 않고 실행을 멈춘다.
- e.g.) null인 인스턴스의 메서드를 호출하는 경우
- Logical 에러
- 프로그램은 에러 없이 동작하지만, 결과는 프로그래머가 예상하지 못한 것이다.
- 슬프지만 프로그래머 탓이다.
이 셋 중 가장 중점적으로 다루어질 에러는 Run-time 에러이다.
Run-time error
런타임 에러는 errors와 exceptions로 나누어진다.
- Errors
- 회복될 수 없고 프로그램은 멈춰야 한다.
- e.g.) out of memory, stack overflow
- Exceptions
- 에러는 회복될 수 있다.
- e.g.) arithmetic exception, class cast exception, null pointer exception...
- 프로그래머는 예외(exception)가 발생했을 때 이 예외들을 관리할 수 있는 핸들러(handler)를 구현할 수 있다.
Errors and Exceptions
자바는 에러와 예외를 클래스로 정의한다.
- 이들은 Throwable이라는 클래스의 subclass들이다. Throwable은 Object 클래스의 subclass이다.
- 예외 클래스는 두 카테고리로 나누어진다.
- RuntimeException과 다른 예외 클래스로 나뉜다.
- RuntimeException: 주로 프로그래머의 실수(..)에 의해 발생한다.
- 0으로 나누기, class cast 등...
- Others: 환경 그리고 사용자 에러에 의해 주로 발생한다.
- FileNotFoundException, ClassNotFoundException...
Exception Handling: try-catch
위에서 예외는 관리할 수 있다고 언급했다. 예외를 관리함으로써, 프로그램은 무사히 실행을 계속할 수 있게 된다. 자바에서는 어떻게 예외를 관리할 수 있을까?
- try-catch 블록을 사용함으로써 가능하다.
https://velog.io/@ssseungzz7/Java-Exception-handling
https://teamdable.github.io/techblog/express-error-handling
https://yohanpro.com/posts/nodejs/error-handling
'Study > node.js' 카테고리의 다른 글
Node.js - TDD 시작하기 (2) (0) | 2023.11.17 |
---|---|
Node.js - TDD 시작하기 (1) (0) | 2023.11.16 |
Node.js - TDD (Test Driven Development) (0) | 2023.11.15 |
[ Node.js ] Express 라우터(Router)란? (0) | 2022.11.30 |
[Express] 익스프레스 restAPI의 PUT과 Patch의 차이점과 사용방법 (1) | 2022.11.29 |