01: /*
02: * $Id: DeinitializationException.java,v 1.22 2007/05/21 10:55:49 agoubard Exp $
03: *
04: * Copyright 2003-2007 Orange Nederland Breedband B.V.
05: * See the COPYRIGHT file for redistribution and use restrictions.
06: */
07: package org.xins.common.manageable;
08:
09: import org.xins.common.MandatoryArgumentChecker;
10: import org.xins.logdoc.ExceptionUtils;
11:
12: /**
13: * Exception thrown when the deinitialization of a <code>Manageable</code>
14: * object caused an exception to be thrown.
15: *
16: * @version $Revision: 1.22 $ $Date: 2007/05/21 10:55:49 $
17: * @author <a href="mailto:ernst@ernstdehaan.com">Ernst de Haan</a>
18: *
19: * @since XINS 1.0.0
20: */
21: public final class DeinitializationException extends Exception {
22:
23: /**
24: * Constructs a new <code>DeinitializationException</code> with the
25: * specified cause exception.
26: *
27: * @param cause
28: * the cause exception, cannot be <code>null</code>.
29: *
30: * @throws IllegalArgumentException
31: * if <code>cause == null</code>.
32: */
33: DeinitializationException(Throwable cause)
34: throws IllegalArgumentException {
35: super (createMessage(cause));
36: ExceptionUtils.setCause(this , cause);
37: }
38:
39: /**
40: * Creates a message based on the specified constructor argument.
41: *
42: * @param cause
43: * the cause exception, cannot be <code>null</code>.
44: *
45: * @return
46: * the message, never <code>null</code>.
47: *
48: * @throws IllegalArgumentException
49: * if <code>cause == null</code>.
50: */
51: private static String createMessage(Throwable cause)
52: throws IllegalArgumentException {
53: MandatoryArgumentChecker.check("cause", cause);
54:
55: String exceptionMessage = cause.getMessage();
56:
57: String message = "Caught " + cause.getClass().getName();
58: if (exceptionMessage != null && exceptionMessage.length() > 0) {
59: message += ". Message: \"" + exceptionMessage + "\".";
60: } else {
61: message += '.';
62: }
63:
64: return message;
65: }
66: }
|