Aer/tests/exception_handler.aer

44 lines
949 B
Plaintext

class ExceptionHandler {
public static void printException(Exception $e) {
print('Uncaught ' + get_class($e) + ', code: ' + $e->getCode() + "\nMessage: " + htmlentities($e->getMessage()) + "\n");
}
public static void handleException(Exception $e) {
ExceptionHandler::printException($e);
}
}
class NewException extends Exception {
}
class Program {
public void main() {
callback $handler = void(Exception $e) {
ExceptionHandler::handleException($e);
};
set_exception_handler($handler);
try {
print("Called try block 0\n");
} finally {
print("Called finally block 0\n");
}
try {
throw new NewException("Catch me once", 1);
} catch(Exception $e) {
ExceptionHandler::handleException($e);
} finally {
print("Called finally block 1\n");
}
try {
throw new NewException("Catch me twice", 2);
} finally {
print("Called finally block 2\n");
}
throw new Exception("Catch me thrice", 3);
}
}