1/* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16function funcWithThrowsParam(f: () => void throws) { 17 try { 18 f() 19 assert(false) 20 } catch (e) { 21 assert(true) 22 } 23} 24 25function funcThrows(): void throws { 26 throw new NullPointerException() 27} 28 29function funcRethrows(f: () => void throws) rethrows { 30 f() 31 assert(false) 32} 33 34function funcDoubleThrows(ff: (f: () => void throws) => void throws) { 35 try { 36 ff(funcThrows) 37 assert(false) 38 } catch (e) { 39 assert(true) 40 } 41} 42 43function main() { 44 funcWithThrowsParam(funcThrows) 45 46 try { 47 funcRethrows(funcThrows) 48 assert(false) 49 } catch (e) { 50 assert(true) 51 } 52 53 funcDoubleThrows(funcRethrows) 54} 55