异常处理
创建于 2023-04-22 / 最近更新于 2023-04-25 /
1965
字体:
[默认]
[大]
[更大]
程序运行中可能出现种种不可预期的情况,运行中发生的错误会引发异常。
通常情况下,异常会导致程序中断执行,非正常退出。有的时候,程序中出现的只是一些无关紧要的错误,并不会对整个程序造成大的影响,那么这个时候我们就希望能够捕获发生的异常,根据异常的情况进行相应的处理,而非直接退出。那么这个时候我们就需要使用到青语言中的异常处理语句。
青语言中的异常处理语句格式如下:
尝试 {
…… 尝试执行的代码块 ……
}排查 绑定异常的变量名 {
…… 处理异常的代码块 ……
}例行 {
…… 例行代码块 ……
}
有可能发生异常的代码,我们可以放到尝试关键字后面的代码块里,如果运行期间这部分代码发生了异常,那么会把异常转换为对象,然后绑定到排查关键字后面的变量名上,然后执行处理异常的代码块。如果存在例行代码块,那么无论是否发生异常,都会执行例行代码块。
下面是一个例子:
尝试 {
1 / 0 ;0不能作为除数,这会引发一个异常
}排查 #异常 { ;这里会把异常转换为对象后,赋值给 #异常
@显示、#异常
}例行 {
@显示、“这是例行语句”
}
在青编辑器中执行这段代码会得到下面的结果:

这里1 / 0触发了一个算术异常,正常情况下这会导致程序中断,我们把它放到尝试语句块中,会捕获这个异常,在排查语句里我们可以查看异常的信息、发生的位置等。最后,执行有例行代码块。
注意,排查子句和例行子句不是必需的,如果不需要对异常进行处理,或者没有例行的代码,则可以省略。
主动引发异常
有了异常处理机制之后,一些情况下,我们也可以通过主动引发异常来控制代码的执行。这个时候我们使用到的是抛出关键字,使用时会将其后的一个值抛出为异常,如果后面的值是字符串,那么就使用字符串的内容作为异常信息,否则会把值转换为格式化字符串后,作为异常信息。
示例如下:
抛出 “这是一个主动引发的异常”
0 人点赞过