main()

main() 메소드는 자바에서 응용프로그램이 시작되는 메소드로서 특별한 의미를 가진다.

public static void main(String[] args){ 
}

원형은 이러하다. main() 메소드의 타입과 특징은

-자바 응용프로그램 실행은 main() 메소드부터 시작한다.

-main() 메소드는 public 속성이다. : 자바 가상 기계(JVM)에 의해 호출되어야 하므로 public 속성이다

-main() 메소드는 static 속성이다. : 클래스의 인스턴스(객체)가 생성되기 전에 호출되므로 static 속성이다.

-main() 메소드의 리턴 타입은 void 이다. : 아무 값도 리턴하지 않기 때문에

-main() 메소드는 인자는 무자열 배열(String [])이 전달된다. 

main() 메소드에 인자 전달

main() 메소드에서 받은 인자값은 args 배열을 통해 들어온다.

public class MainTest { 
     
     public static void main(String[] args) { 
           
           for(int i=0; i < args.length; i++) { 
                System.out.println("args[" + i + "] = " + args[i]);             
           }
           
     }
}

이렇게 되면 아무것도 넣지 않았기 때문에 출력값이 없지만 args 배열에 값을 넣어주면 문자형배열과 같이 출력된다.

예외

예외 : 프로그래밍 언에의 문법에 맞지 않게 프로그램을 작성하면 컴파일 오류(compile time error)가 발생한다. 그러나 프로그램 실행 중 계속 변하는 배열의 인덱스가 범위를 벗어나는 것은 컴파일 시점에서 걸러낼 수 없다. 이처럼 프로그램 실행 중 발생하는 런타임 오류(run time error)는 미리 걸러낼 수가 없어 자바에서는 예외(exception)를 사용해 처리한다. 대표적인 예외들이 아래 표에 있다.

예외 종류 예외 발생 경우
ArithmeticExecption 정수를 0으로 나눌 때 발생
NullPointerExecption null 래퍼런스를 참조할 때 발생
ClassCastExecption 변환할 수 없는 타입으로 객체를 변환할 때 발생
OutOfMemoryError 메모리가 부족한 경우 발생
ArrayIndexOutOfBoundsExecption 배열의 범위를 벗어난 접근 시 발생
IlleagalArgumentExecption 잘못된 인자 전달 시 발생
IOEExecption 입출력 동작 실패 또는 인터럽트 시 발생
NumberFormatExecption 문자열이 나타내는 숫자와 일치하이 않는 타입의 숫자로 변환 시 발생

예외 처리, try - catch - finally

예외 처리란 발생한 예외에 대해 개발자가 작성한 프로그램 내에서 대응하는 것을 말한다. 자바에서 예외 처리 시 try - catch - finally 문을 사용한다.

try{
	 예외가 발생할 가능성이 있는 실행문 (try 블록)
}
catch(처리할 예외 타입 선언){
	예외 처리문 (catch 블록)
}
finally{
	예외 발생 여부와 상관없이 무조건 실행되는 문장(finally 블록)
}//finally블록은 경우에 따라 생략이 가능하다.

try 안의 실행문에서 예외가 발생할 경우 catch문으로 이동하고 발생하지 않으면 finally 문아래 코드를 계속 실행한다.

+ Recent posts