如何将自定义消息附加到异常(在CANT引发异常的替代方法中)?

时间:2019-03-02 11:34:26

标签: java exception throw

我知道我总是可以在try/catch块中捕获异常并像这样抛出Exception (message, e)

    try {
        //...my code throwing some exception
    } catch (IndexOutOfBoundsException e) {
        throw new Exception("Error details: bla bla", e);
    }

容易。但这在重写的方法中不起作用,因为它们不能抛出任何异常,而超级方法则不会抛出任何异常。

那么,我现在有什么选择?

1 个答案:

答案 0 :(得分:2)

您始终可以选择 unchecked 例外,即dcast()类的子类。这些异常以及result <- data.table(id = DT[["id"]], stack(DT[, ..pcols]), stack(DT[, ..rcols])) %>% setnames(c("id", "type", "pind", "rval", "rind")) %>% .[, .(type = type[as.logical(rval)], id)] %>% dcast(id ~ type, value.var = "id", fill = "no", fun.aggregate = function(x) if (length(x)) "yes") %>% .[, `NA` := NULL] > head(result) id type1 type2 1: 1 yes yes 2: 2 yes no 3: 3 no yes 4: 4 no no 5: 5 no yes 6: 6 yes no 的子类免于编译时检查。

这里RuntimeException定义了没有Error子句的Parent方法,而throwException()类将其覆盖,但从{{ 1}}块。

throws