public static void main(String[] args) throws IOException {
System.out.println("1");
try{
System.out.println("2");
System.out.println(0/0);
System.out.println("3");
}catch(ArithmeticException ae){
System.out.println("4");
}
System.out.println("5");
//1 2 4 5출력, 예외발생이후의 문장은 수행하지 않음
}
자바는 메서드에 이러한 예외가발생할수있음을 코드로 작성해놔야한다
그래서 프로그래머가 이러한 예외가 발생할 수 있음을 코드만 보고도 짐작할 수 있다
public class Main{
static File createFile(String fileName) throws Exception {
try{
if(fileName.isEmpty()) throw new Exception("파일이름이 유효하지 않습니다");
}catch(Exception e){
fileName = "제목없음.txt";
}
File f = new File(fileName);
return f;
}
public static void main(String[] args) throws Exception {
System.out.println(createFile(null).getName());
}
}
import java.io.*;
import java.lang.reflect.Array;
import java.nio.Buffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.InvalidPropertiesFormatException;
import java.util.Scanner;
public class Main{
public static File createFile(String str){
if(str.isEmpty()) new Exception("파일이름이 유효하지 않습니다");
return new File(str);
}
public static void main(String[] args) throws Exception {
String str = null;
try{
File f = createFile(str);
System.out.println(f.getName() + " 파일이 성공적으로 생성되었습니다");
}catch(Exception e){
System.out.println(e.getMessage() + "\n 다시 입력해 주세요");
}
}
}
public static void main(String[] args) throws Exception {
int sum = 0;
int score =0;
//try괄호에 객체를 생성한다
//fis와 dis는 AutoCloseable을 구현한 class여야 try가 끝나고 자동으로 close된다
try(FileInputStream fis = new FileInputStream("score.txt");
DataInputStream dis = new DataInputStream(fis)){
while(true){
score = dis.readInt();
System.out.println(score);
sum += score;
}
//try문이 끝나면 위에서 생성한 fis와 dis는 닫히게된다
}catch(EOFException e){
System.out.println("점수의 총합: " + sum);
}catch(IOException e){
e.printStackTrace();
}
}
public static void func2(){
try{
func();//발생한 예외를
}catch(Exception e){//여기서 받고 아래에서 예외처리2
System.out.println("예외처리2");
}
}
public static void func() throws Exception {
try{
throw new Exception();//예외가 발생했음!
}catch(Exception e){
System.out.println("예외처리1");
throw e;//예외를 다시 던짐
}
}