이 시리즈는 개발 도중 알게 된 간단한 정보들을 정리하는 시리즈입니다.
생성자에서 예외가 생기면 어떻게 해야할까?
생성자는 return값이 없기 때문에 예외를 사용하여 처리하여야 한다. 기본적으로 자바에서 유효하지 않은 데이터가 전달되면 자동으로 예외를 발생시켜 객체가 인스턴스화 되지 않도록 방지한다.
그러나 예외가 발생되기 전 생성자가 데이터에 엑세스 한 경우, 부분적으로 생성된 생성자가 남아있을 수 있으므로 try-with-resources 등을 사용해 리소스를 해제하는 것이 좋다.
아래의 코드는 생성자 처음 부분에 데이터를 검사하여 예외를 처리하는 코드이다.
public Item(ItemStack item) throws IllegalArgumentException {
if (!isItem(item)) {
throw new IllegalArgumentException("Invalid item");
}
this.material = item.getType().toString();
ItemMeta itemMeta = item.getItemMeta();
this.name = itemMeta.getDisplayName();
this.lore = itemMeta.getLore();
this.customModelData = itemMeta.getCustomModelData();
}