1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.channel;
17
18 import io.netty.util.internal.PlatformDependent;
19 import io.netty.util.internal.SuppressJava6Requirement;
20 import io.netty.util.internal.ThrowableUtil;
21
22
23
24
25 public class ChannelException extends RuntimeException {
26
27 private static final long serialVersionUID = 2908618315971075004L;
28
29
30
31
32 public ChannelException() {
33 }
34
35
36
37
38 public ChannelException(String message, Throwable cause) {
39 super(message, cause);
40 }
41
42
43
44
45 public ChannelException(String message) {
46 super(message);
47 }
48
49
50
51
52 public ChannelException(Throwable cause) {
53 super(cause);
54 }
55
56 @SuppressJava6Requirement(reason = "uses Java 7+ RuntimeException.<init>(String, Throwable, boolean, boolean)" +
57 " but is guarded by version checks")
58 protected ChannelException(String message, Throwable cause, boolean shared) {
59 super(message, cause, false, true);
60 assert shared;
61 }
62
63 static ChannelException newStatic(String message, Class<?> clazz, String method) {
64 ChannelException exception;
65 if (PlatformDependent.javaVersion() >= 7) {
66 exception = new StacklessChannelException(message, null, true);
67 } else {
68 exception = new StacklessChannelException(message, null);
69 }
70 return ThrowableUtil.unknownStackTrace(exception, clazz, method);
71 }
72
73 private static final class StacklessChannelException extends ChannelException {
74 private static final long serialVersionUID = -6384642137753538579L;
75
76 StacklessChannelException(String message, Throwable cause) {
77 super(message, cause);
78 }
79
80 StacklessChannelException(String message, Throwable cause, boolean shared) {
81 super(message, cause, shared);
82 }
83
84
85
86
87 @Override
88 public Throwable fillInStackTrace() {
89 return this;
90 }
91 }
92 }