异常处理
1 概述
本章节主要介绍了 GS 语言中异常处理的基本概念和使用方法。通过系统学习,您将掌握如何使用 try-catch语句块来捕获和处理程序 运行时的各种错误,了解 error函数抛出错误方式,以及异常处理的底层机制和最佳实践。
本章节面相初次学习GS异常处理的同学或需要简单回顾GS异常处理相关内容的同学。
阅读完本章后,应当能够通过异常处理机制编写更加健壮和可靠的代码,有效处理程序运行过程中可能出现的各类异常情况,提升程序的稳定性和可靠性。
2 异常处理概念
在GS程序的运行过程中,难免会出现一些非预期的情况,例如:打开一个不存在的文件、网络连接突然中断、传入函数的参数无效等。这些非预期的情况统称为异常或错误。
如果不对错误进行处理, 会打断我们的正常运行的逻辑,一路向上传递,直到第一个捕获的地方,或者到整个协程的入口为止。
-
抛出异常:当GS程序遇到无法处理的情况时,它通过抛出异常来向上层发送一个信号,表明遇到了非常规情况。
-
捕获异常:GS上层代码通过异常捕获机制来接收并处理这些信号,根据消息内容决定后续操作。
-
未捕获异常的全局处理:如果某个异常没有被显式捕获,它不会导致GS程序崩溃,而是会被传递到最外层的捕获位置,或者到整个协程的入口为止。
3 异常抛出
当GS中程序或函数遇到自身无法处理的情况时,它可以抛出一个错误,将问题上报。在GS语言中有多种方式可以抛出异常:
3.1 使用 error 函数
可以调用error(string format,...)函数显示的抛出错误并且指定错误信息,示例如下:
import gs.util.file;
// 抛出一个简单的错误信息
void create_a_error()
{
string file_name = "config_not_exits.json";
if(!file.exist(file_name))
error("File:'%s' does not exist", file_name);
}
create_a_error();