Questions tagged «exception»

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

15
在finally块中引发异常
有没有一种优雅的方法来处理finally块中引发的异常? 例如: try { // Use the resource. } catch( Exception ex ) { // Problem with the resource. } finally { try{ resource.close(); } catch( Exception ex ) { // Could not close the resource? } } 如何避免在try/ catch在finally块?

3
以DRY方式将多个错误类传递给ruby的救援条款
我有一些代码需要挽救ruby中的多种类型的异常: begin a = rand if a > 0.5 raise FooException else raise BarException end rescue FooException, BarException puts "rescued!" end 我想做的是以某种方式将要抢救的异常类型列表存储在某个地方,并将这些类型传递给抢救子句: EXCEPTIONS = [FooException, BarException] 然后: rescue EXCEPTIONS 这是否有可能,而且如果没有真正的恶意调用,是否有可能eval?考虑到TypeError: class or module required for rescue clause我尝试上述操作时不会看到我,因此我不抱希望。
100 ruby  exception  rescue 



14
我应该继承std :: exception吗?
我已经看到至少一个可靠的消息源(我采用了C ++类)建议C ++中特定于应用程序的异常类应继承自std::exception。我不清楚这种方法的好处。 在C#中,继承的原因ApplicationException很明确:您可以获得一些有用的方法,属性和构造函数,而只需添加或覆盖所需的内容即可。有了std::exception这一切似乎你得到的是一个what()覆盖方法,你也可以同样创造自己。 那么,将其std::exception用作特定于应用程序的异常类的基类有什么好处(如果有)?有什么好的理由不继承std::exception吗?

6
什么时候应该抛出IllegalArgumentException?
我担心这是运行时异常,因此应谨慎使用。 标准用例: void setPercentage(int pct) { if( pct < 0 || pct > 100) { throw new IllegalArgumentException("bad percent"); } } 但这似乎会强制执行以下设计: public void computeScore() throws MyPackageException { try { setPercentage(userInputPercent); } catch(IllegalArgumentException exc){ throw new MyPackageException(exc); } } 使它回到被检查的异常。 好的,但是让我们开始吧。如果输入错误,则会出现运行时错误。首先,这实际上是一个很难统一实施的策略,因为您可能必须执行相反的转换: public void scanEmail(String emailStr, InputStream mime) { try { …

3
Python中异常处理程序的成本
在另一个问题中,可接受的答案建议用try / except块替换Python代码中的(非常便宜)if语句,以提高性能。 除了编码样式问题外,并假设永远不会触发异常,拥有一个异常处理程序与没有一个异常处理程序,与拥有与零比较的if语句相比,在性能方面有何不同?


4
Ruby自定义错误类:message属性的继承
我似乎找不到有关自定义异常类的更多信息。 我所知道的 您可以声明您的自定义错误类,并使其继承自StandardError,因此可以使用rescued: class MyCustomError < StandardError end 这使您可以使用以下方法提高它: raise MyCustomError, "A message" 然后在救援时得到该消息 rescue MyCustomError => e puts e.message # => "A message" 我不知道 我想给我的异常一些自定义字段,但我想message从父类继承属性。我发现阅读关于这个主题是@message不是异常类的实例变量,所以我担心我的产业将无法正常工作。 谁能给我更多细节吗?如何实现带有object属性的自定义错误类?以下是正确的: class MyCustomError < StandardError attr_reader :object def initialize(message, object) super(message) @object = object end end 然后: raise MyCustomError.new(anObject), "A message" 要得到: rescue MyCustomError …


4
为什么收益率回报不能出现在带有捕获的try块内?
没关系: try { Console.WriteLine("Before"); yield return 1; Console.WriteLine("After"); } finally { Console.WriteLine("Done"); } 该finally块在整个事情完成执行后运行(即使在枚举完成之前就放弃了枚举,也IEnumerator<T>支持IDisposable提供一种确保这一点的方法)。 但这不行: try { Console.WriteLine("Before"); yield return 1; // error CS1626: Cannot yield a value in the body of a try block with a catch clause Console.WriteLine("After"); } catch (Exception e) { Console.WriteLine(e.Message); } 假设(出于参数考虑)WriteLinetry块中的一个或其他调用引发了异常。继续执行catch块有什么问题? 当然,收益率返回部分(当前)无法抛出任何东西,但是为什么那应该阻止我们封闭try/ catch处理在a之前或之后抛出的异常yield …

30
Eclipse-java.lang.ClassNotFoundException
尝试从Eclipse启动我的JUnit-Test时,出现“ ClassNotFoundException”。从控制台运行“ MVN测试”时,一切正常。另外,Eclipse中没有报告任何问题。 我的项目结构如下: 父项目(pom包装) Web项目(战争包装-我的JUnit测试在这里) Flex项目 配置项目 编辑:如何找不到该类?这是一个简单的HelloWorld-Application,没有特殊的库。 这是我的JUnit的运行配置: 替代文本http://www.walkner.biz/_temp/runco​​nfig.png Testclass(但正如我所说;它也不适用于简单的HelloWorld ...): import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import biz.prognoserechnung.domain.User; import biz.prognoserechnung.domain.UserRepository; import biz.prognoserechnung.domain.hibernate.UserHibernateDao; public class UserDaoTest { /** * the applicationcontext. */ private ApplicationContext ctx = null; /** * the user itself. …

8
疑难解答“相关字段的查找无效:​​icontains”
我在以下模型中有models.py: class ListinoTraduttore(models.Model): traduttore = models.ForeignKey('Traduttore', related_name='Traduttore') linguaDa = models.ForeignKey(Lingua, related_name = "linguaDa") linguaA = models.ForeignKey(Lingua, related_name = "linguaA") prezzoParola = models.CharField(max_length=50, blank=True) prezzoRiga = models.CharField(max_length=50, blank=True) scontoCat = models.CharField(max_length=50, blank=True) scontoFuzzy = models.CharField(max_length=50, blank=True) scontoRipetizioni = models.CharField(max_length=50, blank=True) class Meta: verbose_name_plural = "Listini Traduttori" def __unicode__(self): return u"%s Da …

4
CacheProvider的异常NoClassDefFoundError
我在Spring和Hibernate中是新手,因此我尝试基于Spring 3 + Hibernate 4来实现一些简单的Web应用程序,而当我启动tomcat时,我有以下异常: java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) at java.lang.Class.getDeclaredMethods(Class.java:1791) ... Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) 我发现该类在hibernate 3的hibernate-core中,但是在hibernate 4中却找不到它。 我的context.xml中用于持久性的部分: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="org.hsqldb.jdbcDriver"/> <property name="url" value="jdbc:oracle:thin:@IP_Address:SID"/> <property name="username" value="xxx"/> <property name="password" value="xxx"/> <property name="initialSize" value="5"/> <property name="maxActive" value="20"/> </bean> <bean …


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.