我在Docker中的Linux上随机读取.NetCore中的文件。为了更好的速度,我有文件内存映射,所以实际读取只是Span.CopyTo。但是当IO出现故障时会发生什么,整个应用程序都会崩溃,但我想抓住这个错误并可能稍后重试。另一方面,我想只在它发生在特定的Span.CopyTo内时才捕获此错误,因此全局SIGSEGV处理程序不能只忽略错误并继续或至少不总是。
失败的可能性可能更高,因为它实际上在云(Azure)中运行,而磁盘不是本地的(因此网络故障也可能导致此崩溃)。
应用程序也使用ChakraCore和ChakraCore的信号处理程序打破了SIGSEGV的DotNetCore信号处理程序,它崩溃了应用程序,而不是抛出AccessViolationException。