简介
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");
文档内容是否对您有帮助?