| package com.siyeh.igtest.errorhandling.caught_exception_immediately_rethrown; |
| |
| import java.io.File; |
| import java.io.FileInputStream; |
| import java.io.FileNotFoundException; |
| import java.io.IOException; |
| import java.lang.reflect.Method; |
| |
| public class CaughtExceptionImmediatelyRethrown { |
| |
| void foo() throws FileNotFoundException { |
| try { |
| new FileInputStream(new File("")); |
| } catch (IllegalArgumentException e) { |
| e.printStackTrace(); |
| } catch (FileNotFoundException e) { |
| throw e; |
| } catch (RuntimeException e) { |
| e.printStackTrace(); |
| } |
| } |
| |
| void conflict() throws FileNotFoundException { |
| try { |
| int i = 0; |
| new FileInputStream(new File("")); |
| } catch (FileNotFoundException e) { |
| throw e; |
| } |
| int i = 10; |
| } |
| |
| void notImmediately(boolean notsure) throws InterruptedException { |
| try { |
| Thread.sleep(10000L); |
| } catch (InterruptedException ex) { |
| if (notsure) throw ex; |
| } |
| } |
| |
| protected static Method getActionMethod(Class<?> actionClass, String methodName) |
| throws NoSuchMethodException { |
| Method method; |
| try { |
| method = actionClass.getMethod(methodName); |
| } catch (NoSuchMethodException e) { |
| // hmm -- OK, try doXxx instead |
| try { |
| final String altMethodName = "do" + methodName.substring(0, 1).toUpperCase() + methodName.substring(1); |
| method = actionClass.getMethod(altMethodName); |
| } catch (NoSuchMethodException e1) { |
| // throw the original one |
| throw e; |
| } |
| } |
| return method; |
| } |
| |
| public void test() throws IOException { |
| try { |
| // some code here |
| } catch(IllegalStateException | UnsupportedOperationException e) { |
| throw e; |
| } catch(Exception e) { |
| throw new RuntimeException(e); |
| } |
| } |
| } |