ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Try-with-resources
    JAVA 2021. 4. 8. 14:15

     

     

    JAVA 1.7 이상을 쓴다면 Try with resources를 사용할수있다는 내용을 알게되었다.

     

    현재까지는 솔루션 내부 소스든, 구글링에서 보이는 내역들처럼 눈에 띄인 내용이 없어서 알지못했었는데,

     

    알게된 김에 정리.

     

     

    		FileInputStream fis = null;
    		try {
    			
    			File pdfFile = new File(fileUploadPath + "fileName.pdf");
    			fis = new FileInputStream(pdfFile);
    			byte[] pdfFileBytes = IOUtils.toByteArray(fis);
    			result.put(Const.RESULT_STATUS, Const.SUCCESS);
    		} catch (FileNotFoundException fnfe) {
    			throw new CommonException(this.getClass().getName() + ".fileTest() : fileNotFound",	fnfe.getMessage());
    		} catch (IOException io) {
    			throw new CommonException(this.getClass().getName() + ".fileTest() : IOException", io.getMessage());
    		} catch (Exception e){
    			throw new CommonException(this.getClass().getName() + ".fileTest() : Exception", e.getMessage());
    		} finally {
    			try{
    				if(null != fis) fis.close();
    			}catch (FileNotFoundException fnfe) {
    				throw new CommonException(this.getClass().getName() + ".fileTest() : fileNotFound",	fnfe.getMessage());
    			} catch (IOException io) {
    				throw new CommonException(this.getClass().getName() + ".fileTest() : IOException", io.getMessage());
    			} catch (Exception e){
    				throw new CommonException(this.getClass().getName() + ".fileTest() : Exception", e.getMessage());
    			}
    		}
    

     

    우리가 기본적으로 사용하는 패턴은 위와 같이 진행할 경우가 많다.

     

    딱봐도 catch문이 많고, close에 대한 내역을 finally 에서 닫아줘야하기에 번거로운 절차가 있었다.

     

     

     

    위와같이 try-with-resource 를 사용하면, Autoclose가 되기때문에, 처리가 가능하다. 

     

    현재 사내는 java compile 1.6이기에 사용이 불가..

    댓글

Designed by black7375.