package sec01.exam03;
publicclassTryCatchFinallyRuntimeEx{
// 다중 catchpublicstaticvoidmain(String[] args){
String data1 = null;
String data2 = null;
try {
data1 = args[0];
data2 = args[1];
int value1 = Integer.parseInt(data1);
int value2 = Integer.parseInt(data2);
int result = value1 + value2;
System.out.println(value1 + "+" + value2 + "=" + result);
} catch (ArrayIndexOutOfBoundsException e) {// <= 배열 예외 생겼을때 처리
System.out.println("실행 매개값의 수가 부족합니다.");
} catch (NumberFormatException e) {// <= 문자열로 되어 있는 데이터를 숫자로 변경할때 예외 처리
e.printStackTrace();
System.out.println("숫자로 변화할 수 없습니다.");
}finally {// <= 항상 실행
System.out.println("다시 실행 하세요.");
}
}
}
<결과>
90+80=170
다시 실행 하세요.
try, catch 예외 처리 코드 basic
package sec01.exam03;
publicclassTryEx{
//try, catch 예외 처리 코드 basicpublicstaticvoidmain(String[] args){
try {
Class.forName("java.leng.String2");// 해당 파일 존재하지 않음
} catch (ClassNotFoundException e) { // <= 해당 위치에 오류코드 넣기
e.printStackTrace();// 오류 코드 확인
System.out.println("클래스가 존재하지 않습니다.");
//System.out.println(e.getMessage());// TODO Auto-generated catch block// e.printStackTrace();
}
}
}
<실행>
java.lang.ClassNotFoundException: java.leng.String2
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:375)
at chap10/sec01.exam03.TryEx.main(TryEx.java:7)
클래스가 존재하지 않습니다.
기본 API 클래스
java.lang 패키지
java.lang 패키지는 자바 프로그램의 기본적인 클래스를 담고 있는 패키지이다.
패키지에 있는 클래스와 인터페이스는 import 없이 사용할 수 있다.
자바 API 도큐먼트
API ( Aplication Programming Interface )는 API 라이브러리라고 부르기도 하는데, 프로그램 개발에 자주 사용
package sec01.exam01;
import java.util.HashMap;
publicclassHashMapEx{
publicstaticvoidmain(String[] args){
//제네릭 <Integer(키값), String(출력물)>
HashMap<Integer, String> map = new HashMap<>();
map.put(1, "한국");// put 값 넣기
map.put(2, "미국");
map.put(3, "일본");
String val = map.get(2);// get 값 출력
System.out.println(val);// get(2) 미국 출력
}
}
<결과>
미국
제네릭
선언
package sec01.exam01;
// 제네릭publicclassNewBox<T> {
private T t;
public T get(){
return t;
}
publicvoidset(T t){
this.t = t;
}
}
실행
package sec01.exam01;
publicclassNewBoxEx{
publicstaticvoidmain(String[] args){
// <클래스> 클래스만 가능
NewBox<String> newBox = new NewBox<String>();
newBox.set("홍길동");
String name = newBox.get();
System.out.println(name);
NewBox<Apple> newBox2 = new NewBox<Apple>();
newBox2.set(new Apple());
Apple apple = newBox2.get();
System.out.println(apple);
NewBox<Integer> a3 = new NewBox<Integer>();
a3.set(100);
int res = a3.get();
System.out.println(res);
}
}
<결과>
홍길동
sec01.exam01.Apple@1e643faf
100