标签: go
在某些情况下,调用append()会触发内存不足的恐慌,似乎append()本身不会返回nil。
我怎样才能避免这种恐慌情景并向我的用户显示“资源暂时不可用”?
致以最诚挚的问候,
答案 0 :(得分:7)
你不能。
如果运行时无法为追加分配内存,则可能无法恢复或通信资源临时不可用"给用户。例如,GC可能需要分配以进行清理,或者调度程序可能正在尝试分配新线程。因为没有办法严格控制Go程序中的分配,所以没有办法优雅地处理内存不足。
所有OOM条件终止Go程序。