- 깨끗한 코드는 가독성이 있어야 하지만, 안정성도 높아야한다.
- 비즈니스 로직과 오류를 분리하라.
흩어진 오류 처리 코드를 깔끔하게 만드는 게 좋다.
우아하고 고상한 오류 처리 방법
오류 코드 보다 예외를 사용하라
Try-Catch-Finally 문부터 작성하라 *Try-Resources-Catch
미확인 예외(unchecked)를 사용하라
[ 미확인 예외(unchecked exception) ]
런타임 시 잘못 구현된 코드로 인해 발생하는 예외
컴파일 에러가 나지 않지만 적절한 예외처리가 없을 경우 프로그램이 강제 종료
컴파일 시 확인하지 않기 때문에 미확인 예외
RuntimeException에 포함된 예외들
예외에 의미를 제공하라
호출자를 고려해 예외 클래스를 사용하라
정상 흐름을 정의하라.
MealExpenses expenses
= expenseReportDAO.getMeals(employee.getId());
m_total += expenses.getTotal()
public class PerDiemMealExpenses implements MealExpenses {
public int getTotal(){
// 기본 값으로 기본 식비를 반환한다.
}
}
null을 반환하지 마라
public List<Employee> getEmployee(){
if (직원이 없다면)
return Collections.emptyList();
}
null을 전달하지 마라
public class MetricsCalculator{
public double xProjection(Point p1, Point p2){
if (p1 == null || p2 == null){
throw InvalidArgumentException("오류 내용");
}
return (p2.x - p1.x) * 1.5;
}
}
c. assert문을 사용하는 방법 - AssertionError (다만 누군가 잡지 않으면 문제 해결X)
public class MetricsCalculator{
public double xProjection(Point p1, Point p2){
assert p1 != null : "p1 shoud not be null";
assert p2 != null : "p2 shoud not be null";
return (p2.x - p1.x) * 1.5;
}
}