Often you should alter the sort of an exception, and after that maintaining the original exception as internal exception is the best you are able to do. However it should be toss new MyCustomException(myMessage, ex); certainly. Sometimes - but only extremely almost never - rather than a different ArrayList, you might want a brand new LinkedList.