青语言使用文档

异常处理

创建于 2023-04-22 / 最近更新于 2023-04-25 / 1965
字体: [默认] [大] [更大]

程序运行中可能出现种种不可预期的情况,运行中发生的错误会引发异常。
通常情况下,异常会导致程序中断执行,非正常退出。有的时候,程序中出现的只是一些无关紧要的错误,并不会对整个程序造成大的影响,那么这个时候我们就希望能够捕获发生的异常,根据异常的情况进行相应的处理,而非直接退出。那么这个时候我们就需要使用到青语言中的异常处理语句。
青语言中的异常处理语句格式如下:

尝试 {
    …… 尝试执行的代码块  ……
}排查  绑定异常的变量名  {
    ……  处理异常的代码块  ……
}例行 {
    …… 例行代码块  ……
}

有可能发生异常的代码,我们可以放到尝试关键字后面的代码块里,如果运行期间这部分代码发生了异常,那么会把异常转换为对象,然后绑定到排查关键字后面的变量名上,然后执行处理异常的代码块。如果存在例行代码块,那么无论是否发生异常,都会执行例行代码块。

下面是一个例子:

尝试 {
    1   /   0                  ;0不能作为除数,这会引发一个异常
}排查  #异常  {     ;这里会把异常转换为对象后,赋值给 #异常 
    @显示、#异常
}例行 {
    @显示、“这是例行语句”
}

在青编辑器中执行这段代码会得到下面的结果:
image.png

这里1 / 0触发了一个算术异常,正常情况下这会导致程序中断,我们把它放到尝试语句块中,会捕获这个异常,在排查语句里我们可以查看异常的信息、发生的位置等。最后,执行有例行代码块。

注意,排查子句和例行子句不是必需的,如果不需要对异常进行处理,或者没有例行的代码,则可以省略。


主动引发异常

有了异常处理机制之后,一些情况下,我们也可以通过主动引发异常来控制代码的执行。这个时候我们使用到的是抛出关键字,使用时会将其后的一个值抛出为异常,如果后面的值是字符串,那么就使用字符串的内容作为异常信息,否则会把值转换为格式化字符串后,作为异常信息。
示例如下:

抛出  “这是一个主动引发的异常”
0 人点赞过