///////
Search

예외, static

작성 날짜
2022/09/28 07:01
송민지
송민지

1. 예외(Exception)

오류와 같은 예외가 발생했을 때 오류메세지 출력 등의 처리를 하는 것
public class 예외 { public static void main(String args[]){ // 숫자를 0으로 나누면 예외 발생 int b = 4/0; } }
Java
복사
Exception in thread "main" java.lang.ArithmeticException: / by zero
예외 처리 형식
Exception 구현 형식
try
{ ... }
catch
(예외1) { ... }
catch
(예외2) { ... ... }
— try 문장에서 예외가 발생하지 않는다면 catch 문은 무시된다.
— catch에 설정된 예외가 발생할 경우 해당 구문의 예외 처리가 실행된다.
앞의 예외를 try-catch 문으로 바꾸어 예외 처리
public class 예외 { public static void main(String args[]){ try{ int b = 4/0; } // try 문에서 arithmeticExcetion 발생 시 해당 문장 출력 catch(ArithmeticException e){ // e == 오류 객체, 예외 클래스 메소드 호출 System.out.println("0으로 나눌수 없습니다."); } } }
Java
복사
0으로 나눌수 없습니다. // 예외 처리 되어 문장이 출력됐음을 확인할 수 있다.
Finally - 예외가 발생하더라도 꼭 실행되는 것
— 예외 처리 후 그 다음 문장은 실행되지 않는다.
public class 예외 { public static void main(String args[]){ try{ int b = 4/0; // 예외 처리로 아래의 출력문이 실행 x System.out.println("4를 0으로 나눌 수 있다면 이게 실행되겠지?"); } catch(ArithmeticException e){ System.out.println("0으로 나눌수 없습니다."); } } }
Java
복사
0으로 나눌 수 없습니다. // 예외 발생 후 다음 문장이 실행되지 않음
— 이를 처리하기 위해 fianlly 문에 넣어보자.
public class 예외 { public static void main(String args[]){ try{ int b = 4/0; } catch(ArithmeticException e){ System.out.println("0으로 나눌수 없습니다."); } finally{ System.out.println("4를 0으로 나눌 수 있다면 이게 실행되겠지?"); } } }
Java
복사
0으로 나눌수 없습니다. 4를 0으로 나눌 수 있다면 이게 실행되겠지? // 예외 처리 후 실행 됨
예외는 크게 두가지로 나뉜다
Runtime Excetion - 실행 시 발생하는 예외 처리
Excetion - 컴파일 시 발생하는 예외처리
예외 던지기(throw) - 메소드를 사용하여 예외를 발생 시킬 수 있다.
— Runtime Exception
class except extends RuntimeException{ // runtime exception 예외 생성 } public class 예외 { public static void main(String args[]){ if(2/2 == 1){ throw new except(); // runtime exception 예외 던지기 } } }
Java
복사
Exception in thread "main" except
— Exception
class except extends Exception{ // exception 예외 생성 } public class 예외 { public static void main(String args[]){ try{ if(2/2 == 1){ throw new except(); // runtime exception 예외 던지기 } } catch(except e){ System.out.println("생성해둔 예외가 처리 됨."); } } }
Java
복사
생성해둔 예외가 처리 됨.

2. Static

— 메모리에 고정적으로 할당되어, 프로그램이 종료될 때 해제되는 변수
— 여러 객체가 메모리 공유 —> 메모리 절약