Tag: exception

在Java中编写“exception驱动开发”的性能成本?

通过在Java中创建,抛出和捕获exception,是否有任何性能成本? 我计划将“exception驱动的开发”添加到一个更大的项目中。 我想设计自己的exception并将它们包含在我的方法中,迫使开发人员捕获并做适当的工作。 例如,如果您有一种方法可以根据名称从数据库中获取用户。 public User getUser(String name); 但是,用户可能为null,并且在使用User的公共方法之前忘记检查这一点很常见。 User user = getUser(“adam”); int age = user.getAge(); 这将导致NullPointerException和崩溃。 但是,如果我在返回user-object之前进行了检查,如果它为null并抛出’UserIsNullException’: public User getUser(String name) throws UserIsNullException; 我强迫实施者思考和行动: try { User user = getUser(“adam”); int age = user.getAge(); }catch( UserIsNullException e) { } 它使代码更安全地发生意外崩溃并消除更多错误。 假设该网站每小时有数百名访问者,这种设计模式几乎无处不在。 这样的设计方法将如何影响性能? 这些好处是否会超过成本,还是只是简单的编码? 谢谢你的帮助! UPDATE! 要清楚,我的注意力不是包装NullPointerException,正如我的例子所暗示的那样。 目标是强制实施者编写try / catch,从而避免真正崩溃的头痛: user == null 被遗忘了。 […]

Android加密“pad block corrupted”exception

在此代码中,此行导致exception: clearText = c.doFinal(Base64.decode(encryptedText, Base64.DEFAULT)); javax.crypto.BadPaddingException: pad block corrupted 我从以下代码获得了代码: http : //www.techrepublic.com/blog/software-engineer/attention-android-developers-keep-user-data-safe/ 有任何想法吗? private String decrypt (String encryptedText) { byte[] clearText = null; try { SecretKeySpec ks = new SecretKeySpec(getKey(), “AES”); Cipher c = Cipher.getInstance(“AES”); c.init(Cipher.DECRYPT_MODE, ks); clearText = c.doFinal(Base64.decode(encryptedText, Base64.DEFAULT)); return new String(clearText, “UTF-8”); } catch (Exception e) { return null; } } […]

如何解决Hibernateexception的原因“调用setter时发生了IllegalArgumentException”?

当我的程序试图从数据库中按名称加载用户时IllegalArgumentException occurred while calling setter Hibernate抛出的IllegalArgumentException occurred while calling setter时IllegalArgumentException occurred while calling setter偶然exceptionIllegalArgumentException occurred while calling setter的原因? 我是否错误地将表User列USER_RV映射到类Integer而不是BigDecimal或其他整数类型? 请注意,同一应用程序将其他表中的NUMBER列映射到Integer对象,但在使用这些表中的行填充对象时,Hibernate 不会抛出此exception。 另请注意,该程序仅为用户缓存启用RMI缓存复制 。 这个exception可能与缓存复制有关吗? 它是Ehcache或Hibernate中的错误吗? Caused by: org.springframework.orm.hibernate3.HibernateSystemException: IllegalArgumentException occurred while calling setter of com.db.spgit.abstrack.model.User.rv; nested exception is org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.db.spgit.abstrack.model.User.rv at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:676) at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424) at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) at […]

Java:我如何编写try-catch-repeat块?

我知道这样做的反制方法。 我想知道是否有一个很好的,紧凑的方式来做到这一点。

exception处理尝试捕获内部catch

我最近遇到了一个程序员编写的代码,他在catch中有一个try-catch语句! 请原谅我无法粘贴实际代码,但他所做的与此类似: try { //ABC Operation } catch (ArgumentException ae) { try { //XYZ Operation } catch (IndexOutOfRangeException ioe) { //Something } } 我个人觉得这是我见过的最差的代码! 在1到10的范围内,你认为我应该多久去给他一点心思,还是我过度反应? 编辑:他在捕获中实际做了什么,他正在执行一些操作,这些操作可以/应该在初始尝试失败时完成。 我的问题是拥有干净的代码和可维护性。 将第一个catch的exception委托给另一个函数或调用函数就可以了,但是添加更多代码可能会或者可能不会将exception抛入第一个catch,这是我觉得不好的。 我试图避免多个堆叠的“if-loop”语句,我发现这同样糟糕。

了解NoSuchMethodexception中的方法签名

我得到了这个例外但解决了它。 java.lang.NoSuchMethodError: antlr.NoViableAltForCharException. (CLjava/lang/String;II)V 但我想知道如何解释这些消息:“(CLjava / lang / String; II)V”另外,这个“init”是否提到了NoViableAltForCharException类的构造函数? 谢谢。

UnexpectedRollbackException – 完整的场景分析

我所知道的关于这个例外的所有内容都来自Spring的文档和一些论坛post,其中有霜冻的开发人员粘贴了大量的堆栈跟踪,没有回复。 从Spring的文档: 尝试提交事务导致意外回滚时抛出 我想一劳永逸地理解 究竟是什么原因造成的? 回滚发生在哪里? 在App Server代码或数据库中? 它是由于特定的底层exception引起的(例如来自java.sql。*的东西)? 它与Hibernate有关吗? 它与Spring Transaction Manager(在我的情况下是非JTA)有关吗? 怎么避免呢? 有什么最佳做法可以避免它吗? 怎么调试呢? 它似乎难以重现,任何经过validation的方法来解决它?

“投掷”做了什么以及它有什么用?

我是Java新手,刚刚遇到一个在方法中使用“Throws”关键字的教程。 我对此做了一些研究,但仍然没有真正理解它。 从我到目前为止看到的,它告诉编译器在该特定方法中可能抛出某个exception。 为什么我们需要告诉编译器呢? 我在我的方法中只使用了try-catch语句制作了许多程序,并且它运行得很好 – 当然这是管理exception的try-catch语句,对吧?

java.lang.Exception与滚动你自己的exception

您将在什么时候创建自己的exception类而不是使用java.lang.Exception? (所有的时间?只有它会在包外使用?只有它必须包含高级逻辑?等等……)

Java ImageIO IIOException:不支持的图像类型?

首次使用Java处理图像,并得到一些未记录得很好的奇怪exception。 这是失败的代码行: BufferedImage imgSelected = ImageIO.read(new File(“/abs/url/to/file/image.jpg”)); 这一行抛出了一个IIOException,其中不支持的图像类型作为exception消息。 我已经检查并重新检查它实际上是这行抛出exception,File对象是有效的,URL是有效的,而image.jpg实际上是一个有效的JPG,在其他图像中加载完全正常观众。 我该怎么做才能获得有关此exception性质的更多信息? 这是在Java 7中加载图像的传统方式,还是旧的/弃用方法? 关于这些“不支持的图像类型”exception的信息并不是很多,当然,ImageIO支持JPG! 谢谢你的帮助!