Questions tagged «exception»

异常是一种异常情况,需要偏离程序的正常流程。通常,异常不应导致完全失败,而应由异常处理程序来处理。异常处理是许多编程语言中的内置构造。通常,通过展开堆栈来处理异常,从而回滚到异常范围之外的已定义状态,然后调用处理程序块或例程。

7
我应该使用AppDomain.CurrentDomain.BaseDirectory还是System.Environment.CurrentDirectory?
我在同一文件夹中有两个exe文件,我可以从exe1中的一个按钮运行exe2。今天,我通过一个远程(终端服务)会话观察一个客户,并且exe2未能运行“找不到文件”错误,但是当我们检查时exe1位于同一目录中。所以我应该使用AppDomain.CurrentDomain.BaseDirectory或System.Environment.CurrentDirectory吗? 谢谢
86 c#  exception 

3
python的通用捕获
我有一些极其奇怪的行为,似乎会导致无声异常。我该如何编写一个通用的try catch来调试所有异常。类似于以下内容: try: # something that fails except e: print e 详细了解手头的问题: 我有一个Django应用程序,该计算机在我的计算机(Ubuntu Linux 8.10)上可以通过runserver和mod-python正常运行。在部署服务器(Ubuntu Linux 8.10)上,它可以通过运行服务器正常运行,但无法通过mod-python中的apache失败。 我将原因减少到使用Berkeley DB(bsddb.db)和辅助密钥的应用程序中。辅助键的回调方法使用pickle格式化键。当我在单个值上调用pickle时,它将失败。但是,只有当我使用cPickle时,它才会失败,并且对回调函数外部的相同值使用pickle也会起作用。 我只想知道为什么cPickle失败。
86 python  exception 


6
如果内部发生异常,锁定的对象是否保持锁定状态?
在ac#线程应用程序中,如果我要锁定对象,可以说一个队列,如果发生异常,该对象会保持锁定状态吗?这是伪代码: int ii; lock(MyQueue) { MyClass LclClass = (MyClass)MyQueue.Dequeue(); try { ii = int.parse(LclClass.SomeString); } catch { MessageBox.Show("Error parsing string"); } } 据我了解,捕获后的代码无法执行-但我一直在想是否会释放该锁。


18
Java中的True-way解决方案:解析2个字符串中的2个数字,然后返回它们的总和
相当愚蠢的问题。给定代码: public static int sum(String a, String b) /* throws? WHAT? */ { int x = Integer.parseInt(a); // throws NumberFormatException int y = Integer.parseInt(b); // throws NumberFormatException return x + y; } 您能告诉我Java是否不错?我在说的NumberFormatException是一个未经检查的异常。您不必将其指定为sum()签名的一部分。而且,据我所知,未检查的异常的想法只是表明程序的实现是不正确的,甚至更多,捕获未检查的异常是一个坏主意,因为这就像在运行时修复错误的程序一样。 有人可以澄清一下: 我应该指定NumberFormatException方法签名的一部分。 我应该定义自己的检查异常(BadDataException),NumberFormatException在方法内部进行处理,然后将其重新抛出BadDataException。 我应该定义自己的检查异常(BadDataException),以某种方式(如正则表达式)验证两个字符串,BadDataException如果不匹配则将其抛出。 你的想法? 更新: 想象一下,出于某种原因,您不是应该使用开放源代码框架。您查看方法的签名并思考-“好,它永远不会抛出”。然后,有一天,您遇到了一个例外。正常吗 更新2: 有评论说我sum(String, String)的设计不好。我绝对同意,但是对于那些相信,如果我们拥有良好的设计,就不会出现原始问题,这是一个额外的问题: 问题定义是这样的:您有一个数据源,数字存储为 Strings。该源可以是XML文件,网页,带有2个编辑框的桌面窗口,无论如何。 您的目标是实现采用这2 Strings的逻辑,并将其转换为ints并显示消息框,说“和为xxx”。 无论您使用什么方法来设计/实现此功能,您都将拥有以下两点内部功能: 在那里你转换的地方String,以int 加2int秒的地方 …


1
NET中的java.lang.IllegalStateException?
为说明java.lang.IllegalStateException从Java文档: 表示已在非法或不适当的时间调用了方法。换句话说,对于所请求的操作,Java环境或Java应用程序没有处于适当的状态。 IllegalStateException.NET框架中是否有等效项?
84 java  .net  exception 

2
在Ruby中捕获异常后重新引发(相同异常)
我试图通过捕获异常来提高我的Ruby技能。我想知道当您有多个方法调用时,引发相同类型的异常是否很常见。那么,以下代码有意义吗?是否可以引发相同类型的异常,还是不应该在处理方法上捕获它? class Logo def process begin @processed_logo = LogoProcessor::create_image(self.src) rescue CustomException raise CustomException end end end module LogoProcessor def self.create_image raise CustomException if some_condition end end
84 ruby  exception 

5
尝试在python中读取文件时处理异常的好方法是什么?
我想在python中读取.csv文件。 我不知道该文件是否存在。 我当前的解决方案如下。我觉得草率,因为两个单独的异常测试并列在一起。 有更漂亮的方法吗? import csv fName = "aFile.csv" try: with open(fName, 'rb') as f: reader = csv.reader(f) for row in reader: pass #do stuff here except IOError: print "Could not read file:", fName



8
输入的字符串格式不正确
我是C#的新手,我具有Java的一些基本知识,但无法正常运行此代码。 它只是一个基本的计算器,但是当我运行程序VS2008时,出现此错误: 我做了几乎相同的程序,但是在Java中使用JSwing,它运行良好。 这是c#的形式: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace calculadorac { public partial class Form1 : Form { int a, b, c; String resultado; public Form1() { InitializeComponent(); a = Int32.Parse(textBox1.Text); b = Int32.Parse(textBox2.Text); } private void button1_Click(object …

4
“ EXC_BREAKPOINT(SIGTRAP)”异常是否由调试断点引起?
我有一个多线程应用程序,该程序在所有测试机上都非常稳定,并且几乎对我的每个用户都是稳定的(基于对崩溃的抱怨)。不过,该应用程序经常会崩溃,因为一位用户足够发送崩溃报告。所有崩溃报告(约10个连续报告)看起来基本相同: Date/Time: 2010-04-06 11:44:56.106 -0700 OS Version: Mac OS X 10.6.3 (10D573) Report Version: 6 Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000002, 0x0000000000000000 Crashed Thread: 0 Dispatch queue: com.apple.main-thread Thread 0 Crashed: Dispatch queue: com.apple.main-thread 0 com.apple.CoreFoundation 0x90ab98d4 __CFBasicHashRehash + 3348 1 com.apple.CoreFoundation 0x90adf610 CFBasicHashRemoveValue + 1264 2 com.apple.CoreText 0x94e0069c …

5
当我“扔”东西时,它在哪里存储在内存中?
我知道当thrown为n时,堆栈将被“解卷”到被捕获的位置,并且在每个函数上下文中运行堆栈上的类实例的析构函数(这就是为什么您不应该从析构函数中引发异常) -您可能最终会抛出第二个)。但是我想知道发生这种情况时,我抛出的对象存储在内存中的什么位置? 是否依赖于实现?如果是这样,大多数流行的编译器是否使用特定的方法?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.