diff options
Diffstat (limited to 'jack-tests/tests/com/android/jack/throwstatement/test001')
-rw-r--r-- | jack-tests/tests/com/android/jack/throwstatement/test001/dx/Tests.java | 68 | ||||
-rw-r--r-- | jack-tests/tests/com/android/jack/throwstatement/test001/jack/ThrowStmt.java | 46 |
2 files changed, 114 insertions, 0 deletions
diff --git a/jack-tests/tests/com/android/jack/throwstatement/test001/dx/Tests.java b/jack-tests/tests/com/android/jack/throwstatement/test001/dx/Tests.java new file mode 100644 index 0000000..26e5c05 --- /dev/null +++ b/jack-tests/tests/com/android/jack/throwstatement/test001/dx/Tests.java @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.jack.throwstatement.test001.dx; + +import org.junit.Assert; +import org.junit.Test; + +import com.android.jack.throwstatement.test001.jack.ThrowStmt; + +/** + * Tests about throw. + */ +public class Tests { + + private class MyException extends RuntimeException { + + private static final long serialVersionUID = 1L; + } + + private class MySecondException extends RuntimeException { + + private static final long serialVersionUID = 1L; + } + + @Test + public void throwException() { + try { + ThrowStmt.throwException(new MyException()); + Assert.fail(); + } catch (MyException e) { + // Ok + } + } + + @Test + public void reThrowException() { + try { + ThrowStmt.reThrowException(new MyException()); + Assert.fail(); + } catch (MyException e) { + // Ok + } + } + + @Test + public void reThrowSecondException() { + try { + ThrowStmt.reThrowException(new MyException(), new MySecondException()); + Assert.fail(); + } catch (MySecondException e) { + // Ok + } + } +} diff --git a/jack-tests/tests/com/android/jack/throwstatement/test001/jack/ThrowStmt.java b/jack-tests/tests/com/android/jack/throwstatement/test001/jack/ThrowStmt.java new file mode 100644 index 0000000..7045557 --- /dev/null +++ b/jack-tests/tests/com/android/jack/throwstatement/test001/jack/ThrowStmt.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.jack.throwstatement.test001.jack; + +/** + * Throw tests. + */ +public class ThrowStmt { + + public static void throwException(RuntimeException e) { + throw e; + } + + public static void reThrowException(RuntimeException e) { + try { + throw e; + } catch (RuntimeException e1) { + throw e1; + } + } + + public static void reThrowException(RuntimeException e1, RuntimeException e2) { + try { + try { + throw e1; + } catch (RuntimeException e3) { + throw e3; + } + } catch (RuntimeException e4) { + throw e2; + } + } +} |