groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ocs@ocs.cz" <...@ocs.cz>
Subject non-catchable exception?
Date Wed, 12 Oct 2016 16:24:08 GMT
Hello there,

is it possible to create an exception which will *not* be caught by a general handler, only
by a specific one? So that e.g., the following code

===
class MySpecialException extends Exception { /* whatever magic needed here */ }
...
def foo() {
  throw new MySpecialException()
}
def bar() {
  try {
    foo()
  } catch (exception) {
    println "bar caught $exception"
  }
} 
static main(args) {
  try {
    bar()
  } catch (MySpecialException special) {
    println "special exception"
  }
}
===

would print out "special exception" and *not* "bar caught..."?

The reason is that the code I at the moment work with contains _lots_ of generic try/catch
harnesses at different levels of code; they generally report the error caught and then go
on processing the input. Now I would need a „special” exception which would not be caught
by any of them, to abort the processing immediately.

Adding a separate "catch (MySpecialException goup) { throw goup }" statement to each of all
those already existing harnesses -- which would be, I guess, conceptually the right thing
to do -- would be rather at the inconvenient side.

Thanks,
OC


Mime
View raw message