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); } } }