异常链与抑制异常的场景区别?

最近在看java基础,Try with resource中使用抑制异常避免try内异常被finally资源关闭异常覆盖,而异常链不是也可以携带保留异常信息,为什么使用异常抑制而不用异常链?总结下问题:异常链和异常抑制使用场景有什么原则吗?明白的大佬给讲解下呗,勿喷小菜啊

作为类库,应该在遇到异常而不能处理的时候丢出异常,这样才方便上层软件排查错误。
作为最终的软件,一些无关紧要的异常,不需要一一处理,为了软件的运行的连贯性和容错考虑,就要抑制异常。