1 /*
2 * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
3 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
4 *
5 *
6 *
7 *
8 *
9 *
10 *
11 *
12 *
13 *
14 *
15 *
16 *
17 *
18 *
19 *
20 *
21 *
22 *
23 *
24 */
25
26 package java.lang;
27
28 /**
29 * {@code RuntimeException} is the superclass of those
30 * exceptions that can be thrown during the normal operation of the
31 * Java Virtual Machine.
32 *
33 * <p>{@code RuntimeException} and its subclasses are <em>unchecked
34 * exceptions</em>. Unchecked exceptions do <em>not</em> need to be
35 * declared in a method or constructor's {@code throws} clause if they
36 * can be thrown by the execution of the method or constructor and
37 * propagate outside the method or constructor boundary.
38 *
39 * @author Frank Yellin
40 * @jls 11.2 Compile-Time Checking of Exceptions
41 * @since JDK1.0
42 */
43 public class RuntimeException extends Exception {
44 static final long serialVersionUID = -7034897190745766939L;
45
46 /** Constructs a new runtime exception with {@code null} as its
47 * detail message. The cause is not initialized, and may subsequently be
48 * initialized by a call to {@link #initCause}.
49 */
50 public RuntimeException() {
51 super();
52 }
53
54 /** Constructs a new runtime exception with the specified detail message.
55 * The cause is not initialized, and may subsequently be initialized by a
56 * call to {@link #initCause}.
57 *
58 * @param message the detail message. The detail message is saved for
59 * later retrieval by the {@link #getMessage()} method.
60 */
61 public RuntimeException(String message) {
62 super(message);
63 }
64
65 /**
66 * Constructs a new runtime exception with the specified detail message and
67 * cause. <p>Note that the detail message associated with
68 * {@code cause} is <i>not</i> automatically incorporated in
69 * this runtime exception's detail message.
70 *
71 * @param message the detail message (which is saved for later retrieval
72 * by the {@link #getMessage()} method).
73 * @param cause the cause (which is saved for later retrieval by the
74 * {@link #getCause()} method). (A <tt>null</tt> value is
75 * permitted, and indicates that the cause is nonexistent or
76 * unknown.)
77 * @since 1.4
78 */
79 public RuntimeException(String message, Throwable cause) {
80 super(message, cause);
81 }
82
83 /** Constructs a new runtime exception with the specified cause and a
84 * detail message of <tt>(cause==null ? null : cause.toString())</tt>
85 * (which typically contains the class and detail message of
86 * <tt>cause</tt>). This constructor is useful for runtime exceptions
87 * that are little more than wrappers for other throwables.
88 *
89 * @param cause the cause (which is saved for later retrieval by the
90 * {@link #getCause()} method). (A <tt>null</tt> value is
91 * permitted, and indicates that the cause is nonexistent or
92 * unknown.)
93 * @since 1.4
94 */
95 public RuntimeException(Throwable cause) {
96 super(cause);
97 }
98
99 /**
100 * Constructs a new runtime exception with the specified detail
101 * message, cause, suppression enabled or disabled, and writable
102 * stack trace enabled or disabled.
103 *
104 * @param message the detail message.
105 * @param cause the cause. (A {@code null} value is permitted,
106 * and indicates that the cause is nonexistent or unknown.)
107 * @param enableSuppression whether or not suppression is enabled
108 * or disabled
109 * @param writableStackTrace whether or not the stack trace should
110 * be writable
111 *
112 * @since 1.7
113 */
114 protected RuntimeException(String message, Throwable cause,
115 boolean enableSuppression,
116 boolean writableStackTrace) {
117 super(message, cause, enableSuppression, writableStackTrace);
118 }
119 }
120