这是什么意思,如何解决? 我正在使用TPL任务。 整个错误 通过等待任务或访问它的Exception属性,没有观察到任务的exception。 结果,终结者线程重新抛出了未观察到的exception。 在System.Threading.Tasks.TaskExceptionHolder.Finalize() mscorlib程序
我的背景是在C#中,我刚刚开始用Python编程。 当抛出一个exception时,我通常要把它包装在另一个exception中,以增加更多信息,同时仍然显示完整的堆栈跟踪。 在C#中很容易,但是我怎样在Python中做到这一点? 例如。 在C#中我会做这样的事情: try { ProcessFile(filePath); } catch (Exception ex) { throw new ApplicationException("Failed to process file " + filePath, ex); } 在Python中,我可以做类似的事情: try: ProcessFile(filePath) except Exception as e: raise Exception('Failed to process file ' + filePath, e) …但这失去了内部exception的追溯! 编辑:我想看到这两个exception消息和两个堆栈跟踪和相关的两个。 也就是说,我想在输出中看到exceptionX在这里出现,然后出现exceptionY – 和我在C#中一样。 这在Python 2.6中可能吗? 看起来目前为止我能做的最好的(基于Glenn Maynard的回答)是: try: ProcessFile(filePath) except Exception as e: […]
我正在阅读有关exception处理。 我得到了一些关于什么exception处理的信息,但是我有几个问题: 何时抛出exception? 而不是抛出一个exception,我们可以使用返回值来指示错误? 如果我通过try-catch块来保护我所有的函数,是不是会降低性能? 何时使用exception处理? 我看到一个项目,该项目中的每个函数都包含一个try-catch块(即整个函数中的代码被try-catch块包围)。 这是一个很好的做法吗? try-catch和__try __except有什么区别?
我有一个崩溃在我的iPhone应用程序,抛出一个NSException。 崩溃报告是完全不明确的错误在哪里,究竟是什么导致它。 有没有一个聪明的方法来设置一个顶级exception处理程序,以查看是什么造成的? 我不能自己复制这个问题,但是我的一些testing版用户当然可以。 处理这种性质问题的一个聪明的办法是什么?
出于某种原因,它看起来像构造函数代表不起作用在下面的代码片段: function NotImplementedError() { Error.apply(this, arguments); } NotImplementedError.prototype = new Error(); var nie = new NotImplementedError("some message"); console.log("The message is: '"+nie.message+"'") 运行这个The message is: '' 。 任何想法,为什么,或者如果有更好的方式来创build一个新的Error子类? apply到我不知道的本地Error构造函数是否有问题?
我在另外一个问题上看到了这个提示,并想知道是否有人能够向我解释这个工作如何? try { return x; } finally { x = null; } 我的意思是, finally语句是否真的在 return语句之后执行? 这个代码如何线程不安全? 你能想到任何额外的hackery可以做到这一点try-finally破解?
考虑一些可以抛出检查exception的代码( Exceptiontypes的Exception )。 当然,你的代码catch了exception。 你不只是吞下exception,你的代码通过你的用户界面以某种方式报告给用户。 在日志文件中,或者使用GUIpopup。 如果您向用户报告的文本包含exception的消息文本。 也就是说,由Throwable.getMessage()或Throwable.getLocalizedMessage()提供的文本? 我想不是,但似乎很多人不同意我。 那么我错了什么? 我的论点如下。 该消息是在抛出exception时创build的。 因此,它最多只能提供非常低级的信息,这可能不适合向用户报告。 在哲学上,使用这个信息似乎违背了例外的全部观点,即把检测和启动error handling( throw部分)与完成处理和报告( catch部分)区分开来。 使用该消息意味着该消息必须适合于报告,这将报告的责任移动到应仅仅负责检测和启动的位置。 也就是说,我认为Throwable的getMessage()部分是错误的。 该消息未本地化。 getLocalizedMessage()函数的名称并不是很好,因为在catchexception之前,您可能不知道要使用的语言环境(是由英文系统pipe理员读取的系统日志报告,还是popup在GUI的法国用户的窗口中?)。 我听说Java 7有一个大大改进了IOExceptionexception层次结构,使您能够在不同的catch子句中处理不同types的I / O错误,使得getMessage()文本不那么重要。 这意味着即使Javadevise者也对getMessage()感到不舒服。 我不问是否报告堆栈跟踪是有用的。 一个堆栈跟踪对于一个表示错误的exception是唯一有用的。 也就是说,对于一个未经检查的exception。 我认为在这种情况下,提供exception消息的底层细节不仅是有用的,而且是强制性的。 但是我的问题涉及检查的exception,如文件未find。
我试图做一个快速的理智检查…及其失败。 这是我的代码 – import java.util.regex.*; public class Tester { public static void main(String[] args) { String s = "a"; Pattern p = Pattern.compile("^(a)$"); Matcher m = p.matcher(s); System.out.println("group 1: " +m.group(1)); } } 而我所期望的是看到group 1: a 。 但相反,我得到一个IllegalStateException: no match found ,我不知道为什么。 编辑:我也尝试打印出groupCount() ,它说有1。
我在一个应该运行很长时间的程序中出现错误,这个程序打开了太多的文件。 有什么办法可以跟踪哪些文件打开,所以我可以偶尔打印这个列表,看看问题出在哪里?
我开始了一个新的项目,列出所有正在运行的进程的完整path。 当访问一些进程时,程序崩溃并抛出一个Win32Exception 。 说明中列出了列出stream程模块时发生的错误。 最初我以为这个问题可能会发生,因为我在64位平台上运行它,所以我重新编译了CPUtypesx86和AnyCPU 。 不过,我也遇到了同样的错误。 Process p = Process.GetProcessById(2011); string s = proc_by_id.MainModule.FileName; 错误发生在第2行。 空白字段显示出现错误的进程: 有没有办法解决这个错误信息?