简介
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");
该文章对您有帮助吗?