Java: throw vs throws vs Throwable

throw is a statement that causes an exception to be thrown:

void method(int i) {
    if (i < 0)
        throwCauses the IllegalArgumentException to be thrown. new IllegalArgumentException();


throws is used in method declarations to say that a given exception may be thrown by the method.

void method() throwsSays that this method may throw IOExceptions IOException {

    if (ioError)
        throw new IOException();

Throwable is the root class of all objects that can be thrown. If you want to catch all kinds of throwables you could do

try {
} catch (ThrowableCatches everything t) {

    log.error("Request error: " + t);

(This just for illustrative purposes. Catching Throwable is considered bad practice, but that's a topic for another article).


Be the first to comment!