728x90
반응형

유효성 검사 2

[Effective Java] 아이템 76. 가능한 한 실패 원자적으로 만들라.

🎯 아이템 76. 가능한 한 실패 원자적으로 만들라. 일반화해 이야기하면, 호출된 메서드가 실패하더라도 해당 객체는 메서드 호출 전 상태를 유지해야 한다. 메서드를 실패 원자적으로 만드는 방법 1️⃣ 불변 객체 불변 객체의 상태는 생성 시점에 고정되어 절대 변하지 않기 때문이다. 클래스를 불변으로 만들기 위한 5가지 규칙 1.객체의 상태를 변경하는 메서드(setter)를 제공하지 않는다. 2.클래스를 확장할 수 없도록 한다. 3.모든 필드를 final로 선언한다. 4.모든 필드를 private으로 선언한다. 5.자신 외에는 내부의 가변 컴포넌트에 접근할 수 없도록 한다. 2️⃣ 매개변수의 유효성 검사 객체의 내부 상태를 변경하기 전에 잠재적 예외의 가능성 대부분을 걸러낼 수 있는 방법이다. public ..

Java 2023.04.06

[Effective Java] 아이템 49. 매개변수가 유효한지 검사하라.

🎯 아이템 49. 매개변수가 유효한지 검사하라. "오류는 가능한 한 빨리 (발생한 곳에서) 잡아야 한다" 오류를 발생한 즉시 잡지 못하면 해당 오류를 감지하기 어려워지고, 감지하더라도 오류의 발생 지점을 찾기 어려워 진다. 만약, 매개변수 검사를 제대로 하지 못하면 몇 가지 문제가 생길 수 있다. 메서드가 수행되는 중간에 모호한 예외를 던지며 실패할 수 있다. 매개변수 검사에 실패하면 실패 원자성을 어기는 결과를 낳을 수 있다. 실패 원자성 : 메서드에서 예외가 발생한 후에도 그 객체는 여전히 유효한 상태 public과 protected 메서드는 매개변수 값이 잘못됐을 때 던지는 예외를 문서화해야 한다. (@throws 자바독 태그를 사용하면 된다.) /** * (현재 값 mod m) 값을 반환한다. 이..

Java 2023.03.23
728x90
반응형