MeteorCat / 异常就要奔溃吗?

Created Wed, 04 Oct 2023 00:22:50 +0800 Modified Wed, 29 Oct 2025 23:25:05 +0800
315 Words

异常就要奔溃吗?

这里疑问是由编写状态机 Actor 服务引申出来的, 在日常编写业务代码的时候难免出现异常而且这时候真的需要让其整个服务崩溃吗?

// 伪代码, 获取数值除去
function div_value( int val ){
    return 10 / val;
}

// 诱发异常, 除0
div_value(0);

这是手动诱发的异常, 值得让整个程序崩溃退出吗? 当然这里默认这种小异常是不需要退出的, 这里仅仅说明异常并不是一定要崩溃退出.

实际上异常也是分成多种等级:

  • 除0 这种本身属于代码级别异常, 一般代码审阅的时候就会被排查出来, 而且哪怕异常影响也不大
  • 内存泄露 这种异常实际上仅仅是作为内存泄露, 在业务上面实际上也没什么大影响, 主要是硬件上内存消耗会更大
  • 虚悬指针/空指针/线程崩溃, 这种才是最应该崩溃的, 因为本身内部逻辑业务已经错乱了, 整体业务无法正常运行