| [ garbages ] in KIDS 글 쓴 이(By): lathi (크앙) 날 짜 (Date): 2010년 11월 19일 (금) 오후 05시 01분 54초 제 목(Title): Re: Goto-less java considered harmful.. try-catch-finally의 탄생 이유인 에러 핸들링을 예로 드시면서 try를 쓰기 싫다고 하시네요. :) C++과 달리 대개 VM위에서 돌아가는 Java의 경우 에러가 발생하지 않은 경우에는 오버헤드가 거의 없다고 봐도 무방합니다. 특히 control flow가 단순해지고 error check를 위한 코드를 수행하지 않아도 되는 장점을 생각하면 오히려 try 문이 많은 면에서 우위를 가지지요. 에러가 빈번히 발생하고 에러 핸들링의 속도가 중요한 상황이라면 모를까요. 대개의 경우는 에러 없는 패스의 속도가 더 중요하니까요. 그래서 자바에서는 exception handling을 굉장히 적극적으로 사용합니다. 예를 드신 코드에서 malloc 후에 NULL 체크는 C의 패러다임(?)인거구요. 자바에서는 NULL 체크를 할 필요가 없습니다. 할당에 실패하면 OOME가 발생하니까요. 체크가 필요하면 try로 묶어야 하구요. 그러니 java에서는 exception handling을 무조건 사용하지 않는 것보다는, 발생할 수 있는 에러를 논리적으로 분류해서 다루는 게 더 중요합니다. 예를 드신 코드에서라면, parameter check 부분과 resource management 부분을 하나의 패턴으로 묶지 말고 구분해서 처리하는 식으로요. |