Tag: 线程exception

处理Java EE前端方法中的服务层exception

我使用JSF标记<f:event维护了一个包含页面的Web应用程序。 我已经重写了一个服务类中的方法,以引发业务exception。 但是,在引发业务exception时,不会在托pipebean中捕获,并在页面上显示exception。 似乎我的代码try/catch不起作用。 在XHTML中: <f:event listener="#{resourceBean.init(enrollment)}" type="preRenderView" /> Managed Bean中的监听器方法: private boolean canCreateResource; public void init(Enrollment enrollment) { (…) try { canCreateResource = resourceService.canCreateResource(enrollment); } catch (BusinessException e) { canCreateResource = false; } } 服务类中的方法: public boolean canCreateResource(Enrollment enrollment) { if (…) { if (mandateService.isCoordinator(user, course)) { return true; } else { throw new […]

UnobservedTaskException被抛出,但它由TaskScheduler.UnobservedTaskException处理程序和一个continuation OnlyOnFaulted处理程序处理

可能重复: 使用任务并行库时如何处理所有未处理的exception? @Buu Nguyen 嗨,解决scheme是基于你的想法 有人把它尽可能重复,这里有一些不同的东西。 我告诉了答案,这个想法帮助我。 有我的评论。 我在TPL编程方面遇到问题。 即时通讯UnobservedTaskException,即时通讯使用@ h4165f8ghd4f854d6f8h解决scheme[ 任务的exception(s)没有观察到通过等待任务或访问其exception属性。 因此,未观察到的exception是处理exception,但仍然得到UnobservedTaskException。 在启动任务之前,我也提供了以下代码: TaskScheduler.UnobservedTaskException += (sender, e) => { e.SetObserved(); throw e.Exception; }; 但[ exception抛出任务线程,没有被UnobservedTaskException捕获 ]告诉它不捕获每个TPL未处理的exception。 我想泡沫例外,直到达到堆栈顶部,然后处理它。 有人可以帮助我? @Jon Skeet 嗨,我做得更小了 现在编辑它 感谢您的参与 做了更多 class Program { static void Main(string[] args) { Program p = new Program(); p.tplTestOne(); } public void tplTestOne() { //————————————————- […]

Java:作为控制stream的exception?

我听说使用控制stream的exception是不好的做法。 你觉得这怎么样? public static findStringMatch(g0, g1) { int g0Left = -1; int g0Right = -1; int g1Left = -1; int g1Right = -1; //if a match is found, set the above ints to the proper indices //… //if not, the ints remain -1 try { String gL0 = g0.substring(0, g0Left); String gL1 = g1.substring(0, g1Left); […]

最简单最新的c ++ 11 ScopeGuard

我试图写一个基于Alexandrescu概念的简单的ScopeGuard,但用c ++ 11的习惯用法。 namespace RAII { template< typename Lambda > class ScopeGuard { mutable bool committed; Lambda rollbackLambda; public: ScopeGuard( const Lambda& _l) : committed(false) , rollbackLambda(_l) {} template< typename AdquireLambda > ScopeGuard( const AdquireLambda& _al , const Lambda& _l) : committed(false) , rollbackLambda(_l) { _al(); } ~ScopeGuard() { if (!committed) rollbackLambda(); } inline void […]

(未知源)在exception堆栈跟踪

背景 这个问题与 为什么String.valueOf(null)抛出一个NullPointerException? 考虑下面的代码片段: public class StringValueOfNull { public static void main(String[] args) { String.valueOf(null); // programmer intention is to invoke valueOf(Object), but instead // code invokes valueOf(char[]) and throws NullPointerException } } 正如链接问题的答案中所解释的,Java的方法重载将上述调用parsing为String.valueOf(char[]) ,这在运行时正确地导致NullPointerException 。 在Eclipse和javac 1.6.0_17编译,这是堆栈跟踪: Exception in thread "main" java.lang.NullPointerException at java.lang.String.<init>(Unknown Source) at java.lang.String.valueOf(Unknown Source) at StringValueOfNull.main(StringValueOfNull.java:3) 请注意,上面的堆栈跟踪缺lessKEY信息:它没有valueOf方法的完整签名! 它只是说String.valueOf(Unknown Source) ! […]

在BackgroundWorker中未处理的exception

我有一个小的WinForms应用程序,利用BackgroundWorker对象执行长时间运行的操作。 后台操作会抛出偶尔的exception,通常是有人打开正在重新创build的文件。 无论代码是从IDE运行,还是不会popup错误对话框,通知用户发生了未处理的exception。 使用Releaseconfiguration编译代码也不会改变这一点。 根据MSDN : 如果该操作引发了代码无法处理的exception,则BackgroundWorker捕获该exception并将其传递到RunWorkerCompleted事件处理程序中,并作为System.ComponentModel .. ::。RunWorkerCompletedEventArgs的Error属性公开。 如果您正在Visual Studiodebugging器下运行,则debugging器将在引发未处理的exception的DoWork事件处理程序中断点。 我希望偶尔抛出这些exception,并希望在RunWorkerCompleted事件而不是DoWork中处理这些exception。 我的代码工作正常,错误在RunWorkerCompleted事件中正确处理,但我不能为我的生活弄清楚如何停止抱怨发生“未处理的exception”的.NET错误对话框。 BackgroundWorker是不是应该自动捕获这个错误? 这不是MSDN文档的内容吗? 我需要做什么来通知.NET这个错误正在被处理,同时仍然允许exception占用RunWorkerCompletedEventArgs的Error属性?

最后不会在.net中执行的条件try..finally block

基本上我听说某些条件会导致.net吹过最后的块。 有谁知道这些条件是什么?

在Eclipse中增加堆空间:(java.lang.OutOfMemoryError)

try { // CompareRecord record = new CompareRecord(); Connection conn = new CompareRecord().getConection("eliteddaprd","eliteddaprd","192.168.14.104","1521"); ResultSet res = null; if (conn != null){ Statement stmt = conn.createStatement(); res = stmt.executeQuery("select rowindx,ADDRLINE1 from dedupinitial order by rowindx"); } Map<Integer,String> adddressMap = new LinkedHashMap<Integer, String>(); if (res != null){ System.out.println("result set is not null "); while(res.next()){ adddressMap.put(res.getInt(1),res.getString(2)); } } […]

CacheProvider的exceptionNoClassDefFoundError

我有点新的spring和冬眠,所以我试图实现一些简单的基于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中find它。 我的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 id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" […]

Objective-Cexception

我刚刚完成了一个iPhone应用程序编程课程。 作为课程的一部分,我看到了 Objective-C使用@try指令提供exception处理 系统库不使用exception处理,宁愿return nil 我问我是否应该为我写的新代码使用exception处理(例如,如果我写了前端和逻辑代码,所以它们之间的通信在我手中),但我被告知不,不应该使用exception码。 (但是他没有详细说明,那么class上的人就走了,我想也许以后会明白的。) 当然,例外优于return nil ? 你可以捕获特定的types,你不会忽略通常会成功的函数的返回types,你可以logging文本消息,它们允许你的代码专注于正常情况,从而更具可读性。 为什么要使用例外 。 所以你怎么看? 我的培训师是否有权利不使用Objective-Cexception? 如果是这样,为什么?