文档

Cava 异常处理

简介

cava目前的异常处理还比较弱,不支持用户使用try、exception来捕获和处理异常。cava在执行过程中会自动检测除0、数组访问越界、null访问异常。cava代码在检测出来这些异常时会终止执行,并返回异常信息。建议用户在除法、数组访问和对象访问之前都进行合法性检测,从而避免异常出现。

除0异常

代码示例:

int b = 0;
int a = 1 / b; // 除0异常
----------------------------------------------------------------------
double c = 0;
double b = 1 / c; // 浮点数除0不抛异常
int a = 1 / c; // 浮点数除0不抛异常

最佳实践:

int b = 0;
int a = 0;
if (b != 0) {
    a = 1 / b;
}

数组访问越界异常

代码示例:

int[] a = new int[10];
a[-1] // 不合法,超数组下限
a[10] // 不合法,超数组上限

最佳实践:

int[] a = new int[10];
int idx = 10;
if (idx > 0 && idx < a.length) {
    int b = a[idx];
}

null访问异常

代码示例:

Person student = null; //假设Person是已经定义好的类
student.setAge(15); // null 对象不能访问下标

最佳实践:

Person student = null; 
if (student != null) {
    student.setAge(15);
}

用户主动抛异常

代码示例:

Abort.abort();
Abort.abort("exception");
  • 本页导读 (0)
文档反馈