Tag: exception处理

Hibernateexception处理

我有一个“复杂”的问题。 我正在使用Hibernate / JPA与DB进行交易。 我不是DBA,客户端使用我的应用程序,一个RESTful Web服务。 我的问题是数据库被改变了(不经常,但它仍然改变)。 此外,客户端并不总是尊重我的应用程序的输入(长度,类型等)。 当发生这种情况时,Hibernate会抛出exception。 exception很难从日志中翻译和读取,因为它有嵌套exception并且包含大量文本:就像我说的那样,很难理解。 我想知道是否可以在实体级别处理exception,抛出可能是自定义的exception。 我感谢你的耐心和帮助。 编辑: Fianlly我设法做了我想做的事,不确定它是否以正确的方式完成。 App.java package com.mc; import org.hibernate.Session; import com.mc.stock.Stock; import com.mc.util.HibernateUtil; import javax.persistence.EntityManager; public class App { public static void main(String[] args) { Set<ConstraintViolation> violations; validator = Validation.buildDefaultValidatorFactory().getValidator(); Scanner scan = new Scanner(System.in); EntityManager em = null; System.out.println(“Hibernate one to many (Annotation)”); Session […]

用RMI链接exception的坏主意?

抛出RemoteExceptions时使用exception链接是一个坏主意吗? 我们有一个RMI服务器,它执行以下操作: public Object doSomething() throws RemoteException { try { return getData(); } catch (CustomException ex) { throw new RemoteException(ex); } } 我在客户端中遇到由ClassNotFoundException引起的UnmarshallException。 从好的方面来看,事实certificateCustomException本身是导出的。 不幸的是,这个人内部的另一个exception是没有导出,这是ClassNotFoundException的来源。我认为层次结构是这样的: RemoteException – > CustomException – > SQLException – > NotExportedException 我看到的问题是,即使我们可以保证导出CustomException,我们也无法保证任何较低级别的exception。 因为这个原因,我倾向于永远不要使用RemoteExceptions进行exception链接。 相反,我认为我应该在服务器端记录堆栈跟踪并抛出一个简单的vanilla RemoteException,并没有链接到它的“cause”exception。 以前有人处理过这种情况吗?

如何抛出RuntimeException(“找不到符号”)

我试图在我的代码中抛出exception,如下所示: throw RuntimeException(msg); 但是当我在NetBeans中构建时,我收到此错误: C:\….java:50: cannot find symbol symbol : method RuntimeException(java.lang.String) location: class … throw RuntimeException(msg); 1 error 我需要导入一些东西吗? 我拼错了吗? 我敢肯定我一定是在做一些愚蠢的事:-(

如何将Android应用程序日志发送到远程服务器?

在我的应用程序中,我想在遇到崩溃的情况下将日志发送到远程服务器。 我添加了try-catch块并且在catch中我将日志发送到服务器。 我想知道我应该抓住的所有例外情况。 每次崩溃都需要日志,以便我可以修复它。 抓住所有例外情况会是一个好习惯吗? 提前致谢。

什么是流量控制例外的替代方案?

我inheritance了一个java应用程序,它处理请求并在确定应该取消请求时抛出exception。 对于以前的开发人员来说,例外是很方便的,因为它们是退出不再适用的逻辑树的简单方法(是一个goto),并且它会向日志打印一个堆栈跟踪,这是一个很好的信息。 似乎是论坛和博客上的共识,不应将exception用于流量控制,并且超过一半的处理请求被取消,因此它们绝对不是例外情况。 一个论点是性能,它不适用,因为我们的exception代码运行速度足够多年。 另一个论点是,它的结论并不清楚,我同意这一点。 我的问题是:替代方案是什么。 我唯一能想到的是,如果处理应该继续,则每个方法都返回true,否则返回false。 这似乎会使我的代码变得非常膨胀: checkSomething(); checkSomethingElse(); 进入这个: boolean continueProcessing = false; continueProcessing = checkSomething(); if (!continueProcessing) { return false; } continueProcessing = checkSomethingElse(); if (!continueProcessing) { return false; } 那么如果该方法应该返回什么呢? 任何指导都会很棒。 我真的很想观察可用的“最佳实践”。 更新: 我可能应该首先提到的另一个问题是,请求在超过50%的时间内被取消,并不意味着某些事情没有正确,这意味着毕竟不需要请求。

在Java中伪造堆栈跟踪

当您在Java中使用RMI时,exception的远程堆栈跟踪将在您收到时添加,有点像这样: ERROR Client received error when doing stuff: myapp.FooBarException: bla at server.myMethod() at rmi.callHandler() // and now, on the next line comes the client at rmi.sendCall(); at client.doServerMethod() at Thread.run() 这种堆栈跟踪“伪造”怎么办? 我想要它是什么(除了被激活之外)? 好吧,如果我能做到这一点,它会对我有所帮助: outer() { thread = new Thread(… inner(); // inner() throws // RuntimeException // at inner(); // at Runnable.run(); // at Thread.run(); // […]

最后块是否真的需要清理代码(如关闭流)?

我很困惑为什么我需要将清理代码放在finally块中关闭流。 我已经读过finally块中的代码无论什么都会运行(是否存在exception); 并且在finally块运行之后,该方法的其余部分继续。 我的问题是:如果方法的其余部分必须继续,那么为什么我不在函数中的try / catch块之后放入清理代码?

将exception写入文件

我创建的java项目将测试1800个案例,每个案例的输出必须与黄金(所需)输出相匹配。 我为此创建了一个perl脚本并在cygwin上运行它。 有一些案例会抛出exception但却被错误地认为是正确的。 我想在java代码中添加一个try catch块,这样如果抛出任何exception,就会捕获它,并在文件exception.txt上打印堆栈跟踪。 Pseudo Java code: main() { try { … //complete code of main() } catch (Exception e) { FileWriter fstream=new FileWriter(“exception.txt”); BufferedWriter out=new BufferedWriter(fstream); out.write(e.toString()); out.close(); } } 但是这会覆盖以前的文件内容,最后文件包含最后抛出的exception。 如何编写catch块以便打印stackTrace并且文件内容完好无损且每次都不会被覆盖。

如何在java中识别已检查和未检查的exception?

在阅读关于exception的同时,我总会遇到检查exception和未经检查的exception,所以想知道如何区分哪个是什么? 编辑:我想知道我是否创建了任何exception类,那么我如何创建一个已选中或未选中? 每个人的意义是什么?

使用Spring Security标记库时将exception映射到404页面

将exception映射到404页面时,Spring Security标记无法从安全上下文中查找身份validation信息。 使用“真实”404,可以找到认证。 我的web.xml: com.example.NotFoundException /app/404 404 /app/404 在JSP上我有: /app/404路径映射到只返回视图的控制器。 当我浏览到/foo/some_invalid_id , NotFoundException会从控制器中抛出,最后当它进入JSP时,它无法在SecurityContext找到身份validation并呈现这两个选项中的任何一个。 相反,当我浏览/something_that_really_doesnt_exist它能够判断我是否登录并呈现正确的HTML。