안녕하세요 클린코드를 읽다가 궁금한 점이 생겨서 질문드립니다.
갤 정서와는 맞지 않는 내용이나 문체일 수 있지만 양해 부탁드립니다. 편하게 말씀해주세요.
이제부터 본론입니다.
제3장 함수편을 보면 오류코드 이야기를 하며
public enum Error
{
...
}
같은 클래스는 의존성 자석이며, 다른 클래스에서 import해서 사용해야하기 때문에 Error enum이 변한다면 모두 재컴파일하고 재배치해야한다고 말합니다.
그러면서 오류코드 대신 예외를 사용하면 새 예외는 Exception 클래스에서 파생되기에 재컴파일/재배치 없이도 새 예외 클래스를 추가할 수 있다고 언급되는데요
이게 무슨 소린지 모르겠습니다. 참고로 저는 유니티 엔진을 사용해서 공부 중에 있고, C#을 조금 다루어 보았으며 java는 겉핥기만 한 것이 전부입니다.
제가 생각한 바로는 새 오류코드를 추가한다고하면 그냥 enum Error에다가 그냥 추가하면 될 것 같이 보이는데... Exception 클래스에서 파생된다는 이야기는 무엇이고
어느 방법을 취하든 컴파일은 항상 해야하는 것 아닌가 싶은데 재컴파일을 피할 수 있다는 말은 무엇이고... 재배치는 또 무슨 말인지 모르겠습니다.
제가 어떤 개념을 놓치고 있는 건지, 어떤 개념을 공부하면 좋은지 고견 부탁드립니다.
감사합니다 ㅠㅠ
그냥 에러 핸들링에 예외를 사용하란 얘기임. 근데 이게 맞는지는 모르겠다. 난 예외는 정말 예외적인 경우일때만 쓰는게 좋다는 생각이라.. 자바랑 씨샵이랑 권장하는게 다른지는 모르겠음.
흠 권장하는게 달라서 그런 걸수도 있겠네요....
의존성 자석이란 얘긴 결국 많은곳에서 참조하는 어떤 구조를 말하는데 enum Error를 정의해버리면 그 enum 한개를 코드 전체에서 전부 참조하게 되니까 좋지 않다는거임. 예외로 처리하면 그렇지 않고. 근데 좀전에도 말했지만 특히 게임처럼 어떤 메인루프에 해당하는곳에서 모든로직을 꽉잡고있는 구조가 될수밖에 없는 앱에서 그걸 꼭 깐깐하게 지켜야하는지는 의문임
의존성 자석은 붙이기는 쉬운데 때어낼려면 고생해야한다는 뜻이라 아마 에러코드를 enum처리하지말고 exception 클라스 써서 처리하라고 말하는 것 같은데
노력해서 배울가치는 없어보임
근데 그게 enum사용과 exception클래스 사용에 어떤 차이가 있다는 말인가요...? 둘 다 붙이고 떼는 데에 같은 수준의 노력이 들지 않나요?
그래서 배울가치가 없음 왜 예외처리를 enum으로 하냐 exception이라는게 있는데