Is there any way to catch stack overflow error in golang? Currently I'm using go recover() do this job(below code snippet), looks like stack overflow error can't be caught.

defer func() {
            if x := recover(); x != nil {
                log.Error("In recover, cought error====================", x)
            }
        }()

fn(xxx)