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 문아래 코드를 계속 실행한다.
'프로그래밍 공부 > Java' 카테고리의 다른 글
[명품 자바 프로그래밍] 8. 자바의 인자 전달 방식 (0) | 2020.01.20 |
---|---|
[명품 자바 프로그래밍] 7. 자바 객체 지향 언어의 특성, 클래스와 객체 (0) | 2020.01.14 |
[명품 자바 프로그래밍] 5. 자바 기본 프로그래밍 (배열) (0) | 2020.01.10 |
[명품 자바 프로그래밍] 4. 자바 기본 프로그래밍 (반복문) (0) | 2020.01.09 |
[명품 자바 프로그래밍] 3. 자바 기본 프로그래밍 (조건문) (0) | 2020.01.08 |