package ch08;
import java.io.*;
class Ex8_10 {
public static void main(String[] args) {
try {
File f = createFile(args[0]);
System.out.println( f.getName() + "파일이 성공적으로 생성되었습니다.");
} catch (Exception e) {
System.out.println(e.getMessage() + " 다시 입력해주시기 바랍니다.");
}
} // main메서드의 끝
static File createFile(String fileName) throws Exception {
try {
if (fileName==null || fileName.equals(""))
throw new Exception("파일이름이 유효하지 않습니다.");
} catch (Exception e) {
fileName = "제목없음.txt";
}
File f = new File(fileName); // File클래스의 객체를 만든다.
// File클래스의 createNewFile메서드를 이용해서 실제 파일을 생성한다.
f.createNewFile();
return f;
} // createFile메서드의 끝
} // 클래스의 끝
실습 2.
package ch08;
import java.io.*;
class Ex8_10 {
public static void main(String[] args) {
try {
File f = createFile(args[0]);
System.out.println( f.getName() + "파일이 성공적으로 생성되었습니다.");
} catch (Exception e) {
System.out.println(e.getMessage() + " 다시 입력해주시기 바랍니다.");
}
} // main메서드의 끝
static File createFile(String fileName) { // throws Exception {
try {
if (fileName==null || fileName.equals(""))
throw new Exception("파일이름이 유효하지 않습니다.");
} catch (Exception e) {
fileName = "제목없음.txt";
}
File f = new File(fileName); // File클래스의 객체를 만든다.
// File클래스의 createNewFile메서드를 이용해서 실제 파일을 생성한다.
try {
f.createNewFile();
} catch (IOException e) {
throw new RuntimeException(e);
}
return f;
} // createFile메서드의 끝
} // 클래스의 끝
finally 블럭
예외 발생여부와 관계없이 수행되어야 하는 코드를 포함시킬 목적으로 사용
try {
// 예외가 발생할 가능성이 있는 문장들을 넣는다.
} catch (Exception1 e1) {
// 예외처리를 위한 문장을 적는다.
} finally {
// 예외의 발생여부에 상관없이 항상 수행되어야 하는 문장들을 넣는다.
// fianlly블럭은 try-catch문의 맨 마지막에 위치해야 한다.
}
| 참고 | try블럭 안에 return문이 있어서 try블럭을 벗어나갈 때도 finally블럭이 실행된다.