package org.jooby.issues; import org.jooby.Err; import org.jooby.test.ServerFeature; import org.junit.Test; public class Issue382 extends ServerFeature { { get("/err1", () -> { throw new IllegalArgumentException("err1"); }); get("/err2", () -> { throw new IllegalStateException("err2"); }); get("/400", () -> { throw new Err(404); }); get("/500", () -> { throw new Err(500); }); err(IllegalArgumentException.class, (req, rsp, err) -> { rsp.send(err.getCause().getClass().getSimpleName()); }); err(IllegalStateException.class, (req, rsp, err) -> { rsp.send(err.getCause().getClass().getSimpleName()); }); err(404, (req, rsp, err) -> { rsp.send("Not found"); }); err((req, rsp, err) -> { rsp.send("Fallback"); }); } @Test public void shouldHandleSpecificErrTypes() throws Exception { request() .get("/err1") .expect("IllegalArgumentException"); request() .get("/err2") .expect("IllegalStateException"); request() .get("/400") .expect("Not found"); request() .get("/500") .expect("Fallback"); } }