gpt4 book ai didi

java - 处理可能抛出 OutOfMemoryError 的进程的模式

转载 作者:行者123 更新时间:2023-12-02 03:59:13 26 4
gpt4 key购买 nike

我有一个 Java 客户端-服务器应用程序。该客户端旨在运行任意用户代码。如果客户端上运行的用户代码创建了 OutOfMemoryError,那么客户端最终会处于一种丑陋的状态。通常,客户端会(通过 RMI)向服务器发送消息,直到客户端运行的代码终止并且客户端与服务器正常断开连接。

对于客户端的 OOM 情况,人们会建议什么?我可以捕获它并终止客户端进程吗?据推测,我将无法从服务器推送任何命令,因为客户端将没有响应。

如果可能,我希望终止客户端进程,而不必登录到客户端计算机并“手动”终止它。显然,如果用户代码一开始就没有导致此错误,那就最好了,但这取决于用户的调试和我的框架以尽可能友好的方式处理。感谢您的想法!

最佳答案

捕获OutOfMemoryError不是一个好主意。如果你捕获它,你可能没有足够的内存来终止该进程......

开发服务器端应用程序时的一个好习惯是使用套接字超时。如果您的客户端在给定时间内未发送任何命令,则连接将被断开。这使您的服务器更可靠、更安全,并防止发生像您这样的情况。

您可以做的另一件事是尝试使您的客户端应用程序“OutOfMemoryError 证明”,不是以它不能耗尽内存的方式,而是以它应该的方式”不要让您的应用程序崩溃。

关于java - 处理可能抛出 OutOfMemoryError 的进程的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com