• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 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 */
15import {BusinessError} from "@ohos.base";
16import {getDataMaythrow, maythrow, noReturnBusinessError, noReturnMaythrow} from "maythrow";
17
18loadLibrary("ani_maythrow");
19
20function check_no_error() {
21    let res = maythrow(1)
22    assertEQ(res, 11)
23}
24
25function check_error() {
26    let errorMsg: string = "";
27    try {
28        let res = maythrow(0)
29    } catch (e) {
30        errorMsg = e.toString();
31    }
32    assertEQ(errorMsg, "Error: some error happen");
33}
34
35function check_error_when_return_complex_object() {
36    let errorMsg: string = "";
37    try {
38        let res = getDataMaythrow()
39        console.log(res)
40    } catch (e) {
41        errorMsg = e.toString();
42    }
43    assertEQ(errorMsg, "Error: error in getDataMaythrow");
44}
45
46function check_error_when_no_return() {
47    let errorMsg: string = "";
48    try {
49        noReturnMaythrow()
50    } catch (e) {
51        errorMsg = e.toString();
52    }
53    assertEQ(errorMsg, "Error: error in noReturnMaythrow");
54}
55
56function check_business_error() {
57    let error_code: number = 0
58    let errorMsg: string = "";
59    try {
60        noReturnBusinessError()
61    } catch (e) {
62        e = e as BusinessError
63        error_code = e.code
64        errorMsg = e.toString();
65    }
66    assertEQ(error_code, 5)
67    assertEQ(errorMsg, "Error: error in noReturnBusinessError")
68}
69
70function main() {
71    console.log("##############start#############")
72    const suite = new ArkTestsuite("throw error ut")
73
74    suite.addTest("check no error", check_no_error)
75    suite.addTest("check error", check_error)
76    suite.addTest(
77        "check error when return complex object",
78        check_error_when_return_complex_object)
79    suite.addTest("check error when no return", check_error_when_no_return)
80    suite.addTest("check business error", check_business_error)
81    exit(suite.run())
82}
83