Tag: exception处理

有关多次“捕获”的问题

谁能告诉我为什么这个类的输出是’xa’? 为什么不会捕获其他exception(RuntimeException和Exception)? public class Tree { public static void main(String… args) { try { throw new NullPointerException(new Exception().toString()); } catch (NullPointerException e) { System.out.print(“x”); } catch (RuntimeException e) { System.out.print(“y”); } catch (Exception e) { System.out.print(“z”); } finally{System.out.println(“a”);} } }

处理Spring中过滤引发的exception

我正在尝试实现一个Custom ExceptionTranslationFilter,以便处理我的所有关于身份validation的exception(在我的自定义filter类中,身份validation期间使用的toke的有效性)。 根据在互联网上搜索,没有适当的java配置的可用来源。 请参阅我当前的配置。 protected void configure(HttpSecurity http) throws Exception { http.anonymous().and() .servletApi().and() .headers().and() .authorizeRequests() .antMatchers(“/api/login”).permitAll() .anyRequest().authenticated().and() .addFilterBefore(new StatelessAuthenticationFilter(tokenAuthenticationService), UsernamePasswordAuthenticationFilter.class) .addFilterAfter(new ExceptionTranslationFilter(new AuthenticationExceptionHandler()),ExceptionTranslationFilter.class); http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); } 自定义validation入口点类: public class AuthenticationExceptionHandler implements AuthenticationEntryPoint { @Override public void commence(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationException e) throws IOException, ServletException { httpServletResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED,”UNAUTHORIZED”); } } validationfilter类: public class StatelessAuthenticationFilter extends GenericFilterBean { […]

带有Map和Hashtable的ConcurrentModificationexception

在我的应用程序中,我使用了Map来存储POJO对象。 根据要求,我需要迭代Map的keySet并删除不需要任何修改的对象。 考虑下面的代码.. public void remove(Map removeUser){ Set keySet = removeUser.keySey(); User user = null; for(String key : keySet){ user = (user) removeUser.get(key); if(!user.isActive()){ removeUser.remove(key); } } } 这里在上面的代码中,当我尝试在删除对象后获取User对象时,我收到ConcurrentModificationException。 谁能告诉我为什么会发生? 我没有使用multithreading。所以无法理解,从哪里生成ConCurrentModification Exception。 即使我尝试使用HashMap和Hashtable,但问题仍然存在。 谢谢,Gunjan。

哪个更好 – 抛出exception或事先检查错误

在连接到postgresql的服务器中,我应该通过执行”select * …”检查表中是否已存在用户名,然后获取结果集中的行数,并且i的行数等于零,然后插入用户名? 或者只是在表格中插入用户名。 如果它已经存在,那么它将抛出一个错误,然后可以捕获它。 注意:用户名是主键 做以上哪两项更好?

如何在解析CSV行中的空位置时避免触发ArrayIndexOutOfBoundsException?

String[] values = line.split(“,”); Long locId = Long.parseLong(replaceQuotes(values[0])); String country = replaceQuotes(values[1]); String region = replaceQuotes(values[2]); String city = replaceQuotes(values[3]); String postalCode = replaceQuotes(values[4]); String latitude = replaceQuotes(values[5]); String longitude = replaceQuotes(values[6]); String metroCode = replaceQuotes(values[7]); String areaCode = replaceQuotes(values[8]); //… public String replaceQuotes(String txt){ txt = txt.replaceAll(“\””, “”); return txt; } 我正在使用上面的代码来解析具有以下格式的数据的CSV: 828,”US”,”IL”,”Melrose Park”,”60160″,41.9050,-87.8641,602,708 […]

用Java定义自定义exception处理程序?

好 ! 谢谢你找到了答案。 我接受了副本,因为它正是我想要的,并且很好地解释了。 感谢大家的回答:) 有没有人对如何在Java中创建自定义exception处理程序有任何建议或想法? 我的意思是修改标准的Javaexception处理方法,用于代码未捕获的 Exceptions , Errors和更普遍的Throwable 。 PHP的方法是定义一个自定义的exception处理程序 ,但似乎在Java中没有这种方法。 我要实现的目标是在Javaerror handling过程中插入自定义进程: 未捕获的Throwable – >由JVM处理“我的代码外” – >我的自定义进程 – >如果需要,恢复JVM标准exception处理 感谢所有的想法或建议! 在你的答案后编辑 有没有办法将此处理程序生成所有线程而不在每个线程中明确声明? 我在这里为这个话题开了一个新问题。

Java – exception处理 – 如何重新输入无效输入

exception处理仅接受双输入。 因此,当用户输入“k”时,它会显示“错误!请输入一个数字!”。 但是,它不是允许用户重新输入输入,而是跳转到下一个输入“平均脉冲”。如何使其工作以使其保持在同一条线上并允许重新输入值? //主要课程 public class Main { //Master class public static void main( String args[] ) //Standard header for main method { kbentry input = new kbentry(); //Creates object of kbentry class System.out.print(“\nPlease enter a number for Total Impulse: ” ); //Print message to enter 1. input double totalImpulse = input.totalImpulse1(); //Holds the variable […]

Java套接字:重试Connection Refusedexception的最佳方法?

现在我这样做: while (true) { try { SocketAddress sockaddr = new InetSocketAddress(ivDestIP, ivDestPort); downloadSock = new Socket(); downloadSock.connect(sockaddr); this.oos = new ObjectOutputStream(downloadSock.getOutputStream()); this.ois = new ObjectInputStream(downloadSock.getInputStream()); break; } catch (Exception e) {} } 如果远程主机没有在套接字上侦听, downloadSock.connect(sockaddr)将生成ConnectionRefusedexception。 我在一个单独的线程中运行我的代码,所以我不担心阻塞。 鉴于此,我的重试方法是否适当或是否有更好的方法? 谢谢!

我该如何清理exception处理?

我正在寻找清理目前我正在处理的代码库的exception混乱。 基本设置是这样的。 我有一个接口,由很多类实现,如下所示: public interface TerminalMessage { // Override for specific return data type. public E send(TerminalStream stream) throws Exception; } 这些类抛出了许多不同的exception,如IOException,InterruptedException等。 就像现在一样,我所做的只是在捕获的exception上调用getMessage()并将此消息转发给ui-code。 这不是很好,因为我有时会向用户显示伪造的消息,并且我会捕获不必要的exception。 我正在考虑创建一个自定义exception类(TerminalException)来包装所有这些exception。 但是我不知道在哪里进行包装,是否应该在首次抛出exception(例如在输出流中)或每个send()方法中完成包装。 前者的优点是不添加太多代码,但是对我来说更有意义的是流抛出IOException而不是TerminalException。 上面的设计也没有真正解决显示给用户的有时不好的消息,所以一些提示如何将抛出的exception转换为对用户有用的东西会很棒! 谢谢!

在spring哪里可以捕获非rest控制器exception?

我有spring mvc应用程序。 为了捕获exception,我使用了@ExceptionHandler注释。 @ControllerAdvise public class ExceptionHandlerController { @ExceptionHandler(CustomGenericException.class) public ModelAndView handleCustomException(CustomGenericException ex) { …. } } 但我认为在控制器方法调用之后我只会捕获exception。 但是如何捕获在其余环境之外生成的exception? 例如生命周期回调或计划任务。