몇몇 시스템에서 Business layer 에서 발생한 Exception 을 특정한 Error 처리/감지용 Exception class 로 Wrapping 하여 throw 하는 경우가 있다.
Wrapping 하게 되면, Exception 을 감지할 수 있는 Monitoring tool 에 감지가 되지 않는 단점이 있는데, 이것을 아래와 같은 Code 로 다시 한 번 Exception 을 throw 하여 H/W failure 같은 상황을 감지할 수 있다.
이 방법은 내 생각엔, 아주 특수한 경우에만 적용할 수 있을 것 같다. 그렇지 않으면 같은 Exception 이 매우 여러 갈래로 전단에 위치한 Monitoring tool 까지 전파된다.
try {
// DO SOMTHING USEFUL
} catch (e) {
// Make Exception Object
throw ExceptionObject();
} finally {
if ( OccuredException is System Exception ) {
// Make System Exception Object
throw SystemExceptionObject();
}
}