diff options
Diffstat (limited to 'tests/design/soft/DeclareSoft.aj')
-rw-r--r-- | tests/design/soft/DeclareSoft.aj | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/design/soft/DeclareSoft.aj b/tests/design/soft/DeclareSoft.aj new file mode 100644 index 000000000..37da96725 --- /dev/null +++ b/tests/design/soft/DeclareSoft.aj @@ -0,0 +1,29 @@ +public class DeclareSoft { + + public void throwException() throws Exception { + throw new Exception("This should be softened"); + } + + public void throwRuntimeException() { + throw new RuntimeException("Under enh 42743 this should not be softened"); + } + + public static void main(String[] args) throws Exception { + DeclareSoft ds = new DeclareSoft(); + try { + ds.throwException(); + } catch (org.aspectj.lang.SoftException se) {} + try { + ds.throwRuntimeException(); + } catch(org.aspectj.lang.SoftException se) { + throw new RuntimeException("Runtime exception was innappropriately softened"); + } catch (RuntimeException ex) {} + } + +} + +aspect Softener { + + declare soft: Exception : execution(* DeclareSoft.throw*(..)); + +}
\ No newline at end of file |