尝试
执行可能出错的块,异常时交给 捕捉。
xuantie
尝试 {
示("正在执行危险操作...")
} 捕捉 (错误) {
示("捕获到异常")
}你可以……
- 把一整段危险操作包起来,出错统一善后——善后逻辑集中写在
捕捉一处:
xuantie
尝试 {
设 x = 10 / 0
示("结果: " & 字(x))
} 捕捉 (错误) {
示("捕获到错误,改用默认配置")
}
文件.读返回结果容器而非裸字符串,它不触发捕捉——请用若 r.成功 { 设 内容 = r.值 }处理。
- 不要错误详情就省略变量——只写
捕捉加块:
xuantie
尝试 {
危险操作()
} 捕捉 {
示("已兜底")
}注意
- 可捕捉的运行时故障:除零、注解参数类型错误——在
尝试块内抛出,块外保持旧行为(除零返0)。可预期的失败请用结果类型加?判断,那才是错误处理主路。 - 不可捕捉(会直接以非零码退出进程,
捕捉兜不住):访问违例、堆损坏、解(非字符串)之类的运行时类型错误(这类错误按「宁可报错退出」原则打印诊断后退出)。 - 数组越界返
空、字典缺键返空不触发捕捉——这是约定行为。 - 多线程/
异步/并行块内不要用尝试(处理器为进程级,跨线程不可靠)。 捕捉子句不能省略:尝试块后面必须紧跟捕捉,否则编译报错。