Tag: 线程exception

在C ++中通过指针捕获exception

我发现有三种方法可以发现exception,有什么区别? 1)抓住价值; 2)参照; 3)抓住指针; 我只知道,通过值捕获将调用对象的两个副本,引用通过将调用一个。 那么如何通过指针捕捉? 何时使用指针捕获? 除了抛出一个对象之外,我可以抛出一个像这样的对象的指针吗? class A {} void f() { A *p = new A(); throw p; }

为什么是exception.printStackTrace()被认为是不好的做法?

那里有很多的材料 ,这表明打印exception的堆栈跟踪是不好的做法。 例如从Checkstyle的RegexpSingleline检查: 这个检查可以用来查找常见的不良做法,如调用ex.printStacktrace() 然而,我正努力find任何地方给出了一个有效的原因,因为肯定堆栈跟踪是非常有用的在追查什么导致exception。 我知道的事情是: 最终用户永远不会看到堆栈跟踪(用于用户体验和安全目的) 生成堆栈跟踪是一个相对昂贵的过程(尽pipe在大多数“特殊”情况下不太可能成为问题) 许多日志logging框架将为您打印堆栈跟踪(我们不会,也不会轻易更改) 打印堆栈跟踪不构成error handling。 它应该与其他信息logging和exception处理相结合。 还有什么其他原因可以避免在代码中打印堆栈跟踪?

collections被修改; 枚举操作可能不会在ArrayList中执行

我试图从一个ArrayList删除一个项目,我得到这个例外: Collection was modified; enumeration operation may not execute. 有任何想法吗?

如何解决java.net.SocketException:损坏的pipe道?

我使用的Apache公共的HTTP客户端调用URL使用POST方法发布参数,它很less抛出下面的错误。 java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105) at java.io.FilterOutputStream.write(FilterOutputStream.java:80) at org.apache.commons.httpclient.methods.ByteArrayRequestEntity.writeRequest(ByteArrayRequestEntity.java:90) at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:499) at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114) at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) 有人可以build议是什么导致这个exception,以及如何debugging?

捕获在不同线程中抛出的exception

我的一个方法(方法Method1 )产生一个新的线程。 该线程执行一个方法( Method2 ),并在执行期间引发exception。 我需要获取有关调用方法( Method1 )的exception信息 有什么方法可以捕获在Method1中引发的Method1中的此exception?

如何在Java中创build自定义exception?

我们如何在Java中创build自定义exception?

安全处理exception时避免第一次机会exception消息

以下代码捕获EOSexception using (var reader = new BinaryReader(httpRequestBodyStream)) { try { while (true) { bodyByteList.Add(reader.ReadByte()); } } catch (EndOfStreamException) { } } 那么为什么我的控制台仍然会收到第一次机会exception? 在mscorlib.dll中发生了types“System.IO.EndOfStreamException”的第一个机会exception 有没有办法隐藏这些第一次机会exception消息?

如果我在Try块中返回一个值,将会在finally语句中编写代码?

我正在复习一些朋友的代码,并说他在try-finally块中使用了一个return语句。 即使try块的其余部分没有,Finally部分中的代码是否仍然激活? 例: public bool someMethod() { try { return true; throw new Exception("test"); // doesn't seem to get executed } finally { //code in question } }

在C ++中的对象破坏

什么时候在C ++中被销毁的对象,这是什么意思? 我是否必须手动销毁它们,因为没有垃圾收集器? exception如何发挥作用? (注意:这是一个Stack Overflow的C ++常见问题解答的入口,如果你想批评在这个表单中提供FAQ的想法,那么在这个开始所有这些的meta上的贴子将是这个地方的答案。那个问题在C ++聊天室中进行监控,常见问题解决scheme首先出现,所以你的答案很可能会被那些提出这个想法的人阅读)。

IndexError:列表分配索引超出范围

请考虑下面的代码: i = [1, 2, 3, 5, 8, 13] j = [] k = 0 for l in i: j[k] = l k += 1 print j 输出(Win 7 32位上的Python 2.6.6)是: > Traceback (most recent call last): > j[k] = l IndexError: list assignment index out of range 我猜这是简单的,我不明白。 有人能清除它吗?