겉바속촉
[자바] 예외(Exception) 본문
728x90
반응형
예외에 대해서 알아보도록 할게요:)
가벼운 경우들은 예외처리를 해줘서 정상적으로 컴파일 될 수 있게 해줄거에요!
다음 보이는 것들은 예외로 나올 수 있는 경우들이에요:)
다음과 같이 코드를 작성해줄게요
0으로 나눈다고 작성했으니까
당연히 오류가 나겠죠?!
package day0603;
public class ExceptionTest_06 {
public static void main(String[] args) {
System.out.println("프로그램시작");
int num=3/0; //정수를 0으로 나누었을때 에러발생
System.out.println("프로그램종료");
}
}
컴파일해보시면 오류가 뜹니다:)
프로그램시작은 출력되는데
오류때문에 프로그램종료가 출력되지 않네요
try블럭을 만들어서 다음과 같이 코드를 작성해보세요:)
그리고 컴파일 해보시면!!!
즉 그냥 try할게!!! error나는 부분은 catch 하고!!
라고 받아들이시면 됩니다:)
try {
//예외가 발생할 수 있는 코드
int num=3/0; //정수를 0으로 나누었을때 에러발생
}catch (Exception e) {
// 해결방안
// 자세한 에러메세지
e.printStackTrace();
}
에러에 대한 내용은 뜨지만 프로그램 종료까지 출력되는 걸 보실 수 있을 겁니다
다음은 전체 코드
package day0603;
public class ExceptionTest_06 {
public static void main(String[] args) {
System.out.println("프로그램시작");
try {
//예외가 발생할 수 있는 코드
int num=3/0; //정수를 0으로 나누었을때 에러발생
}catch (Exception e) {
// 해결방안
// 자세한 에러메세지
e.printStackTrace();
}
System.out.println("프로그램종료");
}
}
오류나도록 코드 하나 더 작성해볼게요:)
다음은 try와 catch블럭 작성해서 코드 추가했어요
하나 더
또 쭈욱 작성하시다가
전체코드
package day0603;
import java.io.IOException;
import java.io.InputStream;
public class ExceptionTest_08 {
public static void main(String[] args) {
//InputStream; 바이트잔위입력 취상위 클래스-추상클래스이므로 객체를 직접못만들기 때문에
//자식클래스가 받아서 직접구현
//read(): 한바이트만 읽는다
//read(byte[]b)-사용자가 지정한 바이트를 이용해서 한꺼번에 원하는 만큼 읽는다
InputStream is = System.in;
int a =0;
System.out.println("한글자 입력: ");
try {
a=is.read();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("오류: "+e.getMessage());
}
System.out.println("3초뒤에 출력합니다");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("입력값: " + a);
}
}
728x90
반응형
'IT일기(하반기) > 블록체인' 카테고리의 다른 글
String 여러가지 예제 (0) | 2020.06.03 |
---|---|
[자바] throw, throws 연습하기 (0) | 2020.06.03 |
[자바] 배열을 활용한 호출 (0) | 2020.06.02 |
[자바] 생성자 연습하기 (0) | 2020.06.01 |
method 연습하기 (0) | 2020.06.01 |