blob: 309f1bb4eee520c4a91aa55cb5fbcaa636c4669a [file] [log] [blame]
package org.checkerframework.javacutil;
/**
* Handle errors detected in utility classes. By default, the error reporter
* throws a RuntimeException, but clients of the utility library may register
* a handler to change the behavior. For example, type checkers can direct
* errors to the org.checkerframework.framework.source.SourceChecker class.
*/
public class ErrorReporter {
protected static ErrorHandler handler = null;
/**
* Register a handler to customize error reporting.
*/
public static void setHandler(ErrorHandler h) {
handler = h;
}
/**
* Log an error message and abort processing.
* Call this method instead of raising an exception.
*
* @param msg the error message to log
*/
public static void errorAbort(String msg) {
if (handler != null) {
handler.errorAbort(msg);
} else {
throw new RuntimeException(msg, new Throwable());
}
}
public static void errorAbort(String msg, Throwable cause) {
if (handler != null) {
handler.errorAbort(msg, cause);
} else {
throw new RuntimeException(msg, cause);
}
}
}