exception-handling相关内容

如何实现全局 iPhone 异常处理?

我的 iPhone 应用程序发生了一次崩溃,它确实引发了 NSException.崩溃报告在错误在哪里以及究竟是什么导致错误方面完全模棱两可.我是否有一种聪明的方法可以在某处设置顶级异常处理程序以查看导致它的原因?我自己无法复制这个问题,但我的一些测试版用户肯定可以. 处理此类问题的明智方法是什么? 解决方案 你好像在问两个问题:如何设置顶级异常处理程序;以及如何处理确定根本原因的问 ..

如何修复调用 Thread.sleep() 时未处理异常的编译错误?

我是 Java 新手,而且对编程有点陌生(我知道直接进入 Java 可能不是最好的主意.)无论我如何尝试在我的程序.我正在做一个简单的计数程序,想在每个数字之间添加一秒的延迟,这是我目前拥有的代码: import java.lang.*;公共课柜台{公共静态无效主要(字符串[]参数){诠释我;对于 (i = 0; i 对 Thread.sleep() 的调用不会编译.javac 编译器说,“ ..
发布时间:2022-01-08 12:01:32 Java开发

任务发生异常时,根据用户输入多次重试任务

我的应用程序中的所有服务调用都是作为任务实现的.当某个任务出现故障时,我需要向用户显示一个对话框来重试上次失败的操作.如果用户选择重试,程序应该重试该任务,否则程序的执行应该在记录异常后继续.任何人对如何实现这个功能有一个高层次的想法? 解决方案 UPDATE 5/2017 C# 6 异常过滤器使 catch 子句更加简单: 私有静态异步任务重试(Func fu ..
发布时间:2022-01-08 12:01:12 C#/.NET

Python:一次尝试多次,除了

在 Python 中,一个 try 语句是否可以有多个 except 语句?如: 尝试:#某事1#something2除了 ExceptionType1:#返回xyz除了 ExceptionType2:#return abc 解决方案 是的,有可能. 尝试:...除了 FirstException:handle_first_one()除了 SecondException:handle_se ..
发布时间:2022-01-08 11:59:42 Python

如何在恐慌的 Go 函数中返回一个值?

我的 Go 函数应该返回一个值,但是在调用库函数时它可能会出现恐慌.我可以使用 recover() 在延迟调用中捕获它,但在这种情况下如何返回值? func MyFunc() 字符串{延迟函数(){如果错误:=恢复();错误!= 零{//如果发生恐慌,我该怎么做才能让 MyFunc() 返回一个值?}}()SomeFuncThatMayPanic()返回“正常返回值"//如果出现恐慌,如何返回“ ..
发布时间:2022-01-08 11:58:33 其他开发

处理异常,这是个好办法吗?

我们正在努力制定正确处理应用程序异常的策略.这是我们的目标(总结): 只处理特定的例外情况. 只处理您可以纠正的异常情况 只记录一次. 我们提出了一个涉及通用应用程序特定异常的解决方案,并在一段代码中像这样工作: 尝试{//做任何事}捕获(ArgumentNullException ane){//处理,可选择记录并继续}捕获(AppSpecificException){//重新抛 ..
发布时间:2022-01-08 11:57:29 C#/.NET

当 finally 不在 .net try..finally 块中执行时的条件

基本上我听说某些条件会导致 .net 吹过 finally 块.有谁知道这些条件是什么? 解决方案 两种可能: StackOverflowException ExecutionEngineException 当存在 StackOverflowException 时,finally 块将不会被执行,因为堆栈上没有空间可以执行更多代码.当存在 ExecutionEngineExc ..
发布时间:2022-01-08 11:57:13 C#/.NET

在 try { return x; 中真正发生了什么?} 最后 { x = null;} 陈述?

我在另一个问题中看到了这个提示,想知道是否有人可以向我解释这到底是如何工作的? try { 返回 x;} 最后 { x = null;} 我的意思是,finally 子句真的执行 after return 语句吗?这段代码有多线程不安全?你能想到任何可以做的额外黑客行为吗?这个 try-finally 破解? 解决方案 不 - 在 IL 级别,您不能从异常处理块内部返回.它本质上将它存 ..
发布时间:2022-01-08 11:55:57 C#/.NET

在 Python 中,如何将警告视为异常?

我在 python 代码中使用的第三方库(用 C 编写)发出警告.我希望能够使用 try except 语法来正确处理这些警告.有没有办法做到这一点? 解决方案 要将警告作为错误处理,只需使用以下代码: 导入警告警告.filterwarnings(“错误") 在此之后,您将能够捕获与错误相同的警告,例如这将起作用: 尝试:some_heavy_calculations()除了运行时警 ..
发布时间:2022-01-08 11:54:12 Python

Python“从"提高用法

Python中的raise和raise from有什么区别? 尝试:引发 ValueError例外为 e:引发索引错误 产生的结果 Traceback(最近一次调用最后一次): 中的文件“tmp.py"第 2 行引发 ValueError值错误在处理上述异常的过程中,又出现了一个异常:回溯(最近一次通话最后): 中的文件“tmp.py"第 4 行引发索引错误索 ..
发布时间:2022-01-08 11:53:28 Python

主要方法代码完全在 try/catch 中:这是不好的做法吗?

通常我将我所有的 Main 方法代码放在一个 try/catch 块中,如下所示: public static void Main(string[] args){尝试{//代码}捕获(异常 e){//代码}} 我这样做是为了以防任何异常从程序逻辑的其余部分中溜走,从而允许我做一些事情,例如将其显示到控制台、将其记录到文件等.但是,我被告知这是不好的做法. 你认为这是不好的做法吗? ..
发布时间:2022-01-08 11:52:55 C#/.NET

为什么 C++ 不使用 std::nested_exception 来允许从析构函数中抛出?

从析构函数抛出异常的主要问题是,在调用析构函数的那一刻,另一个异常可能“正在运行"(std::uncaught_exception() == true),所以它是在这种情况下该怎么做并不明显.用新异常“覆盖"旧异常将是处理这种情况的可能方法之一.但决定在这种情况下必须调用 std::terminate(或另一个 std::terminate_handler). C++11 通过 std::n ..
发布时间:2022-01-08 11:50:33 C/C++开发

如果我在 Try 块中返回一个值,Finally 语句中的代码会触发吗?

我正在为一位朋友审查一些代码,并说他在 try-finally 块中使用了 return 语句.即使 try 块的其余部分没有触发,Finally 部分中的代码是否仍然触发? 例子: public bool someMethod(){尝试{返回真;抛出新异常(“测试");//似乎没有被执行}最后{//有问题的代码}} 解决方案 简单回答:是的. ..
发布时间:2022-01-08 11:49:40 C#/.NET

C++,__try 和 try/catch/finally

我想知道关于 C++ 的 try/catch/finally 块.我见过这些带有两个下划线的命令,比如 __try.但是 MVSC 2010 项目也可以在没有下划线的情况下运行.那么什么时候需要这些下划线呢? 解决方案 在 Windows 上,操作系统级别支持异常.它们被称为结构化异常处理 (SEH),大致相当于 Unix 信号.为 Windows 生成代码的编译器通常利用这一点,他们使用 ..
发布时间:2022-01-08 11:49:30 C/C++开发

.NET - 实现“捕获所有异常处理程序"的最佳方式是什么?

我想知道最好的方法是“如果所有其他方法都失败了". 我的意思是,您在应用程序中处理尽可能多的异常,但仍然肯定会有错误,所以我需要有一些东西捕获所有未处理的异常,以便我可以收集信息并存储将它们保存在数据库中或将它们提交到 Web 服务. AppDomain.CurrentDomain.UnhandledException 事件是否捕获所有内容?即使应用程序是多线程的? 旁注:Win ..
发布时间:2022-01-08 11:48:46 C#/.NET

Java 未报告的异常

在学习 Java 时,我经常偶然发现这个错误.它是这样的: 未报告的异常 java.io.FileNotFound 异常;必须被抓住或宣布被扔掉. java.io.FileNotFound 只是一个例子,我见过很多不同的.在这种特殊情况下,导致错误的代码是: OutputStream out = new BufferedOutputStream(new FileOutputStrea ..
发布时间:2022-01-08 11:47:04 Java开发