You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.2 KiB
120 lines
3.2 KiB
/* |
|
* Javassist, a Java-bytecode translator toolkit. |
|
* Copyright (C) 1999- Shigeru Chiba. All Rights Reserved. |
|
* |
|
* The contents of this file are subject to the Mozilla Public License Version |
|
* 1.1 (the "License"); you may not use this file except in compliance with |
|
* the License. Alternatively, the contents of this file may be used under |
|
* the terms of the GNU Lesser General Public License Version 2.1 or later, |
|
* or the Apache License Version 2.0. |
|
* |
|
* Software distributed under the License is distributed on an "AS IS" basis, |
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
|
* for the specific language governing rights and limitations under the |
|
* License. |
|
*/ |
|
|
|
package com.fr.third.javassist; |
|
|
|
import com.fr.third.javassist.compiler.CompileError; |
|
|
|
/** |
|
* Thrown when bytecode transformation has failed. |
|
*/ |
|
public class CannotCompileException extends Exception { |
|
private Throwable myCause; |
|
|
|
/** |
|
* Gets the cause of this throwable. |
|
* It is for JDK 1.3 compatibility. |
|
*/ |
|
public Throwable getCause() { |
|
return (myCause == this ? null : myCause); |
|
} |
|
|
|
/** |
|
* Initializes the cause of this throwable. |
|
* It is for JDK 1.3 compatibility. |
|
*/ |
|
public synchronized Throwable initCause(Throwable cause) { |
|
myCause = cause; |
|
return this; |
|
} |
|
|
|
private String message; |
|
|
|
/** |
|
* Gets a long message if it is available. |
|
*/ |
|
public String getReason() { |
|
if (message != null) |
|
return message; |
|
else |
|
return this.toString(); |
|
} |
|
|
|
/** |
|
* Constructs a CannotCompileException with a message. |
|
* |
|
* @param msg the message. |
|
*/ |
|
public CannotCompileException(String msg) { |
|
super(msg); |
|
message = msg; |
|
initCause(null); |
|
} |
|
|
|
/** |
|
* Constructs a CannotCompileException with an <code>Exception</code> |
|
* representing the cause. |
|
* |
|
* @param e the cause. |
|
*/ |
|
public CannotCompileException(Throwable e) { |
|
super("by " + e.toString()); |
|
message = null; |
|
initCause(e); |
|
} |
|
|
|
/** |
|
* Constructs a CannotCompileException with a detailed message |
|
* and an <code>Exception</code> representing the cause. |
|
* |
|
* @param msg the message. |
|
* @param e the cause. |
|
*/ |
|
public CannotCompileException(String msg, Throwable e) { |
|
this(msg); |
|
initCause(e); |
|
} |
|
|
|
/** |
|
* Constructs a CannotCompileException with a |
|
* <code>NotFoundException</code>. |
|
*/ |
|
public CannotCompileException(NotFoundException e) { |
|
this("cannot find " + e.getMessage(), e); |
|
} |
|
|
|
/** |
|
* Constructs a CannotCompileException with an <code>CompileError</code>. |
|
*/ |
|
public CannotCompileException(CompileError e) { |
|
this("[source error] " + e.getMessage(), e); |
|
} |
|
|
|
/** |
|
* Constructs a CannotCompileException |
|
* with a <code>ClassNotFoundException</code>. |
|
*/ |
|
public CannotCompileException(ClassNotFoundException e, String name) { |
|
this("cannot find " + name, e); |
|
} |
|
|
|
/** |
|
* Constructs a CannotCompileException with a ClassFormatError. |
|
*/ |
|
public CannotCompileException(ClassFormatError e, String name) { |
|
this("invalid class format: " + name, e); |
|
} |
|
}
|
|
|