Tag: 线程exception

为什么Java 8types推断不考虑Lambdas在重载select中抛出的exception?

我有一个关于lambda的Java 8推理及其相关的exception签名的问题。 如果我定义了一些方法foo: public static <T> void foo(Supplier<T> supplier) { //some logic … } 那么我可以写出foo(() -> getTheT());简洁明了的语义foo(() -> getTheT()); 在大多数情况下对于给定的T 然而,在这个例子中,如果我的getTheT操作声明它throws Exception ,那么我的foo方法就不再编译供应商了:供应商get方法签名不会抛出exception。 看起来像一个体面的方式来解决这个问题将是重载foo接受任一选项,重载的定义是: public static <T> void foo(ThrowingSupplier<T> supplier) { //same logic as other one … } ThrowingSupplier被定义为 public interface ThrowingSupplier<T> { public T get() throws Exception; } 这样,我们有一个供应商types抛出exception,一个不是。 所需的语法是这样的: foo(() -> operationWhichDoesntThrow()); //Doesn't […]

Visual Studiodebugging – 忽略其他地方的exception,而在其他地方?

我有一些代码,在一个特定的行(这是在不同的开发人员的代码,所以我不能只是改变它),然后捕获和适当处理生成大量的ArgumentExceptions。 我试图debuggingArgumentExceptions这是发生在不同的代码段(然后被捕获和处理,所以我不能只看看未处理的exception)。 有什么办法可以忽略源自特定其他代码行的ArgumentExceptions,同时还会抛出抛出其他地方的ArgumentExceptions?

如何解决“System.AggregateException”发生在mscorlib.dll“

我在debugging器中收到这样的问题,程序停止执行。 debugging器不显示我的行,所以我不知道该怎么修复。 mscorlib.dll中发生未处理的“System.AggregateException”typesexception 附加信息:通过等待任务或访问其“exception”属性,不会观察到任务的exception。 结果,终结者线程重新抛出了未观察到的exception。 无法获取本地或参数“的值”,因为它在该指令指针处不可用,可能是因为它已被优化掉。 System.Threading.Tasks.TaskExceptionHolder 如何解决我的问题? 我也发现这个问题是非常相似的无法获得本地或参数的值,因为它不可用在这个指令指针,可能是因为它已经被优化了

如果在使用语句中发生exception,该对象是否仍然被处置?

如果在使用语句中发生exception,该对象是否仍然被处置? 我之所以问,是因为我试图决定是否试图抓住整个代码块或内部使用语句。 考虑到某些例外情况正在重新devise的捕捞区内进行devise。 using (SPSite spSite = new SPSite(url)) { //Get the Web using (SPWeb spWeb = spSite.OpenWeb()) { // Exception occurs here } }

谁删除在“新”操作期间分配的内存,在构造函数中有exception?

我真的不敢相信我找不到明确的答案 如何释放在C ++类构造函数抛出exception后分配的内存,在使用new运算符初始化的情况下。 例如: class Blah { public: Blah() { throw "oops"; } }; void main() { Blah* b = NULL; try { b = new Blah(); } catch (…) { // What now? } } 当我尝试了这一点, b在catch块中是NULL(这是有道理的)。 在debugging的时候,我注意到conrol在进入构造函数前进入内存分配例程。 这在MSDN网站上似乎证实了这一点 : 当使用new为C ++类对象分配内存时,将在分配内存后调用该对象的构造函数。 所以,请记住,局部variablesb从来没有被分配(即在catch块中是NULL),你如何删除分配的内存? 在这个问题上得到一个跨平台的答案也是很好的。 即C ++规范说什么? 澄清:我不是在谈论这个类在c'tor中分配内存然后抛出的情况。 我明白,在这种情况下,决不会被召唤。 我正在讨论用于分配对象的内存(在我的例子中是Blah )。

应该尝试尽可能严格的java范围块?

我被告知使用Java try-catch机制会有一些开销。 因此,虽然有必要将在try块中引发checked checked的方法放在可能的exception处理中,但在性能方面,限制try块的大小只包含那些可能会引发exception的操作是一个很好的做法。 我不太确定这是一个明智的结论。 考虑处理指定文本文件的函数的两个实现。 即使第一个是不必要的开销,我也觉得要容易得多。 目前还不清楚哪些例外情况只是从查看报表而来,但评论清楚地表明了哪些报表是有责任的。 第二个比第一个更长更复杂。 特别的,第一个好的阅读习语必须被修改,以适应readLine调用。 在一个函数中处理exception的最佳实践是什么? 这个包含try块中的所有处理代码: void processFile(File f) { try { // construction of FileReader can throw FileNotFoundException BufferedReader in = new BufferedReader(new FileReader(f)); // call of readLine can throw IOException String line; while ((line = in.readLine()) != null) { process(line); } } catch (FileNotFoundException ex) { handle(ex); […]

在Python中使用exception还是返回代码更好?

您可能会从Microsoft获知有关在.NET中使用例外情况的build议: 性能考虑 … 仅在特殊情况下抛出exception… 另外,当返回码足够时,不要抛出exception。 (请参阅http://msdn.microsoft.com/en-us/library/system.exception.aspx上的全文 。 作为比较的一点,你会推荐相同的Python代码?

exec任务需要一个命令执行的错误是什么意思?

在Visual Studio中编译项目时,出现错误消息“执行任务需要执行的命令”,没有行号。 这个错误是什么意思? (为了回答我自己的问题而抱歉,在写这篇文章的时候我刚刚find了一个答案,已经把它做成了社区wiki,以免冒犯。)

为什么.NETexception不被try / catch块捕获?

我正在使用C#的ANTLRparsing器库进行项目工作。 我已经build立了一个语法来parsing一些文本,它运作良好。 但是,当parsing器遇到非法或意外的令牌时,会抛出许多exception之一。 问题是,在某些情况下(不是全部),我的try / catch块不会捕获它,而是停止执行作为未处理的exception。 我的问题是,我不能在其他地方复制这个问题,但在我的完整代码。 调用堆栈显示exception肯定发生在我的try / catch(Exception)块中。 我唯一能想到的是在我的代码和引发exception的代码之间发生了几个ANTLR程序集调用,而且这个库没有启用debugging,所以我不能一步一步地完成它。 我不知道如果不可debugging程序集抑制exception冒泡? 调用堆栈看起来像这样; 外部程序集调用在Antlr.Runtime: Expl.Itinerary.dll!TimeDefLexer.mTokens()1213行C# Antlr3.Runtime.dll!Antlr.Runtime.Lexer.NextToken()+ 0xfc字节 Antlr3.Runtime.dll!Antlr.Runtime.CommonTokenStream.FillBuffer()+ 0x22c字节 Antlr3.Runtime.dll!Antlr.Runtime.CommonTokenStream.LT(int k = 1)+ 0x68字节 Expl.Itinerary.dll!TimeDefParser.prog()第109行+ 0x17字节C# Expl.Itinerary.dll!Expl.Itinerary.TDLParser.Parse(string Text =“”,Expl.Itinerary.IItinerary Itinerary = {Expl.Itinerary.MemoryItinerary})Line 17 + 0xa bytes C# 来自Parse()中最底层调用的代码片段如下所示: try { // Execution stopped at parser.prog() TimeDefParser.prog_return prog_ret = parser.prog(); return prog_ret == null ? null […]

Windows / C ++:是否有可能findexception被抛出的代码行有“Exception Offset”

我们的一位用户在我们的产品启动时出现exception情况。 她从Windows向我们发送了以下错误消息: Problem Event Name: APPCRASH Application Name: program.exe Application Version: 1.0.0.1 Application Timestamp: 4ba62004 Fault Module Name: agcutils.dll Fault Module Version: 1.0.0.1 Fault Module Timestamp: 48dbd973 Exception Code: c0000005 Exception Offset: 000038d7 OS Version: 6.0.6002.2.2.0.768.2 Locale ID: 1033 Additional Information 1: 381d Additional Information 2: fdf78cd6110fd6ff90e9fff3d6ab377d Additional Information 3: b2df Additional Information 4: a3da65b92a4f9b2faa205d199b0aa9ef […]