Tag: 线程exception

官方原因“软件导致连接中止:套接字写入错误”

给定这个堆栈跟踪片段 导致:java.net.SocketException:软件导致连接中止:套接字写入错误 在java.net.SocketOutputStream.socketWrite0(本地方法) 我试图回答以下问题: 什么代码抛出这个exception? (JVM?/ Tomcat?/我的代码?) 是什么导致这个exception被抛出? 关于#1: Sun的JVM源不包含这个确切的消息,但我认为文本软件导致连接中止:套接字写入错误是从本地实现SocketOutputStream : private native void socketWrite0(FileDescriptor fd, byte[] b, int off, int len) throws IOException; 关于#2 我的猜测是,这是当客户端已经终止连接,在得到完整的响应之前(例如发送请求,但在得到完整的响应之前,它被closures/终止/离线) 问题: 上述假设是否正确(#1和#2)? 这可以从这种情况分歧:“由于服务器端的networking错误,无法写入客户端”? 或者会呈现相同的错误信息? 最重要的是 : 是否有官方文件(例如来自Sun)说明上述情况? 我需要certificate这个堆栈跟踪是套接字客户端的“错误”,并且服务器没有办法避免它。 (除了捕获这个exception,或者使用一个非Sun Java虚拟机的SocketOutputStream,虽然两者都不能真正避免客户端终止的事实)

为什么不把exception用作正常的控制stream?

为了避免所有的标准答案,我可以谷歌search,我会提供一个你可以随意攻击的例子。 C#和Java(以及其他)有很多types的溢出行为,我不喜欢所有types(例如type.MaxValue + type.SmallestValue == type.MinValue ,例如: int.MaxValue + 1 == int.MinValue )。 但是,看到我的恶毒天性,我会通过扩展这种行为来增加一些侮辱,比如重写DateTimetypes。 (我知道DateTime是封闭在.NET中,但为了这个例子,我使用了一个完全像C#的伪语言,除了DateTime没有密封的事实。 重写的Add方法: /// <summary> /// Increments this date with a timespan, but loops when /// the maximum value for datetime is exceeded. /// </summary> /// <param name="ts">The timespan to (try to) add</param> /// <returns>The Date, incremented with the given timespan. /// […]

处理“java.lang.OutOfMemoryError:PermGen空间”错误

最近我遇到了我的Web应用程序中的这个错误: java.lang.OutOfMemoryError:PermGen空间 这是在Tomcat 6和JDK 1.6上运行的典型的Hibernate / JPA + IceFaces / JSF应用程序。 显然这可能会在重新部署应用程序几次之后发生。 是什么原因造成的,为避免这种情况可以采取什么措施 我如何解决这个问题?

从脚本导入已安装的软件包引发“AttributeError:模块没有属性”或“ImportError:无法导入名称”

我有一个名为requests.py的脚本导入请求包。 该脚本无法从包中访问属性,或者无法导入它们。 为什么不这样做,我该如何解决? 以下代码引发了一个AttributeError 。 import requests res = requests.get('http://www.google.ca') print(res) Traceback (most recent call last): File "/Users/me/dev/rough/requests.py", line 1, in <module> import requests File "/Users/me/dev/rough/requests.py", line 3, in <module> requests.get('http://www.google.ca') AttributeError: module 'requests' has no attribute 'get' 下面的代码引发了一个ImportError 。 from requests import get res = get('http://www.google.ca') print(res) Traceback (most recent call last): File "requests.py", […]

Java:检查与未经检查的exception说明

我已经阅读关于检查与未经检查的exceptionStackOverFlow多个职位。 我老实说还不太清楚如何正确使用它们。 Joshua Bloch在“ Effective Java ”中表示 对于可恢复的条件和运行时exception使用已检查的exception来编程错误(第二版中的第58项) 让我们看看我是否正确理解这一点。 这是我对一个检查的exception的理解: try{ String userInput = //read in user input Long id = Long.parseLong(userInput); }catch(NumberFormatException e){ id = 0; //recover the situation by setting the id to 0 } 1.以上是否考虑检查exception? 2. RuntimeException是一个未经检查的exception吗? 这是我对未经检查的例外的理解: try{ File file = new File("my/file/path"); FileInputStream fis = new FileInputStream(file); }catch(FileNotFoundException e){ //3. […]

什么是StackOverflowError?

什么是StackOverflowError ,是什么原因造成的,我该如何处理它们?

什么是“致命错误:意外地发现零,而解包可选值”是什么意思?

我的Swift程序崩溃与EXC_BAD_INSTRUCTION和这个错误。 这是什么意思,我该如何解决? 致命错误:意外地发现零,而解包一个可选的值 这篇文章的目的是为了收集“意外发现无”问题的答案,所以它们不是零散的,很难find。 随意添加自己的答案或编辑现有的维基答案。

我如何解决android.os.NetworkOnMainThreadException?

我运行RssReader的Android项目时出错。 码: URL url = new URL(urlToRssFeed); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); XMLReader xmlreader = parser.getXMLReader(); RssHandler theRSSHandler = new RssHandler(); xmlreader.setContentHandler(theRSSHandler); InputSource is = new InputSource(url.openStream()); xmlreader.parse(is); return theRSSHandler.getFeed(); 并显示下面的错误: android.os.NetworkOnMainThreadException 我该如何解决这个问题?