exception-handling相关内容
如何显示导致错误的行号,这是否可以通过 .NET 编译其 .exe 的方式实现? 如果没有,Exception.Message 是否有一种自动方式来显示被淘汰的子? 试试{int x = textbox1.Text;}捕获(异常前){MessageBox.Show(ex.Message);} 解决方案 使用 ex.ToString() 获取完整的堆栈跟踪. 即使在发布模式下,您也
..
我能做些什么来捕捉AccessViolationException?它是由我无法控制的非托管 DLL 抛出的. 解决方案 你不应该.访问冲突是一个严重的问题:它是对无效内存地址进行写入(或读取)的意外尝试.正如约翰已经阐明的那样,在引发访问冲突之前,非托管 DLL 可能已经损坏了进程内存.这可能会对当前流程的任何部分产生不可预测的影响. 最安全的做法是尽可能通知用户然后立即退出.
..
在为 Java API 编写单元测试时,您可能希望对异常执行更详细的验证.IE.比 JUnit 提供的 @test 注释提供的更多. 例如,考虑一个类,它应该从其他接口捕获异常,包装该异常并抛出包装的异常.您可能需要验证: 引发包装异常的确切方法调用. 包装器异常将原始异常作为其原因. 包装器异常的消息. 这里的主要观点是您希望在单元测试中对异常进行额外的验证(而不是争论是否
..
我在学习new后做了一些研究,不像我习惯的malloc(),不会为失败的分配返回NULL,发现有两种不同的方式检查 new 是否成功.这两种方式是: 试试{ptr = new int[1024];}catch(std::bad_alloc& exc){断言();}; 和 ptr = new (std::nothrow) int[1024];如果(ptr == NULL)断言(); 我相信这
..
我更愿意这样做而不在 LoadXml() 中捕获异常并将此结果用作我的逻辑的一部分.关于不涉及自己手动解析 xml 的解决方案的任何想法?我认为 VB 对此函数的返回值为 false 而不是抛出 XmlException.Xml 输入由用户提供.非常感谢! if (!loaded){this.m_xTableStructure = new XmlDocument();尝试{this.m_xTab
..
Visual Studio 曾经有一个特定的复选框来“中断未处理的异常".2015 年,它已被删除(或移到我找不到的地方).所以现在如果我没有提供用户级异常处理程序,我转换后的项目不再中断.我不想打破所有“抛出的异常",因为我处理特定的异常.正是我未能提供特定处理程序的地方. 现在我的代码只是简单地退出当前过程并在下一个调用堆栈位置继续执行,不太好. 有人知道如何在 Visual St
..
如何将 std::ostream 绑定到 std::cout 或 std::ofstream 对象,具体取决于某个程序条件?尽管由于多种原因这无效,但我想实现语义上等同于以下内容的内容: std::ostream out = 条件?&std::cout : std::ofstream(filename); 我见过一些不是异常安全的例子,例如来自 http://www2.roguewave.co
..
为了抛出异常,我通常使用内置的异常类,例如ArgumentNullException 和 NotSupportedException.但是,有时我需要使用自定义异常,在这种情况下我会写: class SlippedOnABananaException : 异常 { }类 ChokedOnAnAppleException :异常 { } 等等.然后我在我的代码中抛出并捕获这些.但是今天我遇到了
..
我在 try 块中的代码有问题.为方便起见,这是我的代码: 尝试:编码一个代码 b #如果 b 失败,它应该忽略,并转到 c.代码 c #如果 c 失败,转到 d代码除了:经过 这样的事情有可能吗? 解决方案 你必须让这个单独 try块: 尝试:编码一个除了显式异常:经过尝试:代码 b除了显式异常:尝试:代码c除了显式异常:尝试:代码除了显式异常:经过 这假设您希望在 code b
..
我之前从未进行过任何认真的 Java 编码,但我根据我现有的技能(Delphi 和 C#)学习了语法、库和概念.我几乎不明白的一件事是,我看到了很多代码,它们在 printStackTrace 之后默默地消耗异常,如下所示: public void process() {尝试 {System.out.println("测试");} 捕获(异常 e){e.printStackTrace();}}
..
我已经阅读并重新阅读了实践中的 Java 并发,我已经阅读了有关该主题的几个主题,我已经阅读了 IBM 文章 处理 InterruptedException 但有些东西我根本没有掌握,我认为可以分为两个问题: 如果我自己从不中断其他线程,什么会触发InterruptedException? 如果我自己从来没有使用 interrupt() 中断其他线程(比如说因为我正在使用其他方法来取消
..
class throwseg1{void show() 抛出异常{throw new Exception("my.own.Exception");}void show2() throws Exception//为什么这里需要 throws ?{展示();}void show3() throws Exception//为什么这里需要 throws ?{显示2();}public static voi
..
在objective-c/cocoa 中抛出异常的最佳方法是什么? 解决方案 我使用 [NSException raise:format:] 如下: [NSException raise:@"Invalid foo value" format:@"foo of %d is invalid", foo];
..
我目前正在编写我的第一个 Windows 窗体应用程序.我现在已经阅读了一些 C# 书籍,因此我对 C# 必须处理异常的语言特性有了比较好的了解.然而,它们都非常理论化,所以我还没有了解如何在我的应用程序中将基本概念转化为良好的异常处理模型. 有人愿意分享关于这个主题的任何智慧珍珠吗?发布您看到像我这样的新手所犯的任何常见错误,以及任何关于如何处理异常的一般建议,以使我的应用程序更加稳定和健
..
我不确定为什么我们需要 finally 在 try...except...finally 语句中.在我看来,这个代码块 尝试:运行代码1()除了类型错误:run_code2()其他代码() 与使用finally的这个相同: 尝试:运行代码1()除了类型错误:run_code2()最后:其他代码() 我错过了什么吗? 解决方案 早点回来会有区别: 尝试:运行代码1()除了类型错误:
..
我不得不用一些代码来回答这个问题: 假设我编写了以下方法规范: public void handleData() 抛出 java.sql.SQLException, java.sql.SQLDataException 您正在为数据库编写代码将使用此方法的程序并且您想要处理每个具体来说.try/catch 子句应该是什么样的? 您可以使用 no-ops-- empty blocks
..
这是处理生成器中抛出的异常的后续内容,并讨论了一个更普遍的问题.> 我有一个函数可以读取不同格式的数据.所有格式都是面向行或记录的,并且对于每种格式都有一个专用的解析函数,作为生成器实现.所以主读取函数获得一个输入和一个生成器,后者从输入中读取其各自的格式并将记录传送回主函数: def read(stream, parsefunc):在 parsefunc(stream) 中记录:do_stu
..
谁能告诉我异常可能有什么原因,与“throws"子句不兼容 例如: class Sub extends Super{@覆盖void foo() 抛出异常{}}类超级{void foo() 抛出 IOException{}} Exception Exception 与 Super.foo() 中的 throws 子句不兼容 解决方案 没有完整的代码示例,我只能猜测:你在子类中重写/
..
在 Try Catch finally 块中,finally 块是无论如何都会执行,还是仅当 catch 块不返回错误时才执行? 我的印象是,finally 块只有在 catch 块无错误通过时才会执行.如果catch块因为错误而被执行,是不是应该一起停止执行并返回错误信息? 解决方案 不仅 finally 块会在 catch 块之后执行,try 甚至不需要捕获任何异常来执行 fin
..
当有后置条件时,方法的返回值不能为空,怎么办? 我能做到 assert returnValue != null : "不可接受的空值"; 但是断言可以关闭! 这样可以吗 if(returnValue==null){throw new NullPointerException("方法AAA的返回值为空");} ? 或者对于这种情况使用用户定义的异常(如 NullReturn
..