package variables;
import java.util.InputMismatchException;
public class Casting2 {
public static void main(String[] args) {
// 자료형변환
int data = 100;
String strData = data + "ㅁㄴㅇ";
System.out.println("정수데이터 " + "strData");
int convertInt = 0;
try {
// 예외발생 가능성이 있는 코드 작성
// 숫자 + 문자를 Integer로 형변환 하려고 하는 중에 문제가 발생하고 있다.
convertInt = Integer.parseInt(strData);
} catch (NumberFormatException e) { // catch (캐치가 동작할 예외 선택)
// 예외 발생 시 실행할 코드 작성(예외가 발생하지 않을 시 실행하지 않는다.)
// catch는 여러개 사용할 수 있다.
e.printStackTrace(); // 오류발생 로그를 볼 수 있다.
System.out.println("오류발생!");
} catch (InputMismatchException e) { // java.util에서 InputMismatchException을 import해야 사용 가능하다.
} catch (Exception e) { // <-- Exception은 모든 예외를 처리해준다.
}
// catch의 예외처리 순서 배치도 중요하다.
// -> Exception 같은 경우 모든 예외를 처리 해준다. 이를 catch문의 최상단으로 배치를 하게 되면
// 그 아래 있는 catch는 작동 될 수 없다.
// if else if문과 같이 catch문 하나가 실행이 되면 동작 후 탈출해버린다.
System.out.println("자료형 정수 : " + convertInt);
// double형 변수 + String형 변수의 형 변환
double doubleData = 3.14;
strData = doubleData + "";
System.out.println("실수 데이터 : " + strData);
double convertDouble = Double.parseDouble(strData);
System.out.println("형변환 후 데이터 : " + convertDouble);
}
}