1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * ident "%Z%%M% %I% %E% SMI"
24 *
25 * Copyright (c) 1998-2001 by Sun Microsystems, Inc.
26 * All rights reserved.
27 */
28
29 package com.sun.dhcpmgr.bridge;
30
31 import java.text.MessageFormat;
32
33 /**
34 * This class is the superclass for all exceptions (other than core java
35 * exceptions) thrown by the server and JNI routines.
36 */
37 public class BridgeException extends Exception {
38
39 /**
40 * Arguments to use when formatting the message for the exception.
41 */
42 protected Object [] args = null;
43
44 /**
45 * Simplest constructor.
46 */
47 public BridgeException() {
48 super("internal_error");
49 } // constructor
50
51 /**
52 * Constructor that provides a msgid.
53 * @param msgid ResourceBundle id to link to this exception.
54 */
55 public BridgeException(String msgid) {
56 super(msgid);
57 } // constructor
58
59 /**
60 * Constructor that provides a msgid and an argument to the message.
61 * @param msgid ResourceBundle id to link to this exception.
62 * @param args array of arguments to be used in format of message.
63 */
64 public BridgeException(String msgid, Object [] args) {
65 super(msgid);
66 this.args = args;
67 } // constructor
68
69 /**
70 * Constructor that provides a msgid and an argument to the message.
71 * @param msgid ResourceBundle id to link to this exception.
72 * @param arg argument to be used in format of exception message.
73 */
74 public BridgeException(String msgid, String arg) {
75 super(msgid);
76 args = new Object[1];
77 args[0] = arg;
78 } // constructor
79
80 /**
81 * Override of superclass getMessage(). Builds a message using the
82 * msgid and args (if any) that were provided at instantiation.
83 * @return message for the exception.
84 */
85 public String getMessage() {
86 String message = null;
87 String messageId = super.getMessage();
88
89 try {
90 if (args != null) {
91 MessageFormat form = new MessageFormat(
92 ResourceStrings.getString(messageId));
93 message = form.format(args);
94 } else {
95 message = ResourceStrings.getString(messageId);
96 }
97 } catch (Throwable e) {
98 message = messageId;
99 }
100
101 return (message);
102 } // getMessage
103
104 } // BridgeException