대학수업/프로그램설계방법론

[15] 프로그램 설계 방법론 ( 텍스트 및 예외 처리)

MIRIP 2022. 11. 17. 14:44
반응형

파일을 영구 보존하기 위해서는 RAM이 아니라 외부 저장 장치에 저장해야 한다.

 

텍스트

# String

텍스트는 일종의 문자열이고, 수정불가하다. 즉, immutable하다.

String과 Char[]는 다르다. String은 immutable하지만 Char[]은 mutable하다.

 

.equals()의 매개변수에는 Object가 들어가서 어떤 것이든 들어간다. 다른 말로 유연하다.

package example;

public class example_string {
	public static void main(String[] args) {
		String s = "abc";
		String t = "abc";
		System.out.println(s==t);
		System.out.println(s.equals(t));
	}
}

는 아래 그림과 같이 같은 주소값을 받아서 s == t를 했을 때도 true가 나온다.

package example;

public class example_string {
	public static void main(String[] args) {
		String s = "abc";
		String t = new String("abc");
		System.out.println(s==t);
		System.out.println(s.equals(t));
	}
}

하지만 위의 코드처럼 프로그래밍한다면 다른 주소값을 할당받기 때문에 아래 그림과 같이 s == t는 false, s.equals(t)는 true가 나온다. 

# 직렬 파일 ( Sequential Files )

파일(file) : 보조 기억장치에 영구 저장되어 있는 심벌의 시퀀스(나열)

  • 문자 파일( = 텍스트 파일) : 키보드 문자의 시퀀스 (바이트 단위로 저장)
  • 바이너리 파일 : 0과 1의 시퀀스
package example;

import java.io.FileWriter;
import java.io.PrintWriter;

public class example_string {
	public static void main(String[] args) throws Exception{
		PrintWriter outfile = new PrintWriter(new FileWriter("poem.txt"));
		outfile.println("가을이 오면");
		outfile.println("학기가 저물고, ");
		outfile.println("시험이 끝나면서");
		outfile.println("겨울이 온다.");
		outfile.close();
	}
}

다음과 같이 작성할 수 있다.

 

예외 처리

# Exceptions

Exception에는 크게 3가지가 있다. InterrptedException, RuntimeException, IOException이다.

ArithmeticException : 0으로 나눌 때 exception

 

 

# try - catch

try-catch 구문은 다음과 같이 사용할 수 있다.

Exception e로 처리하면 exception이 발생하지 않겠지만 너무 두루뭉실하게 처리된다. 따라서 exception마다 예외처리를 하는 것이 바람직하다.

 위의 표는 예외가 발생했을 때 Exception 객체가 처리 가능한 메서드이다.

 

예외처리와 일반 코드가 같이 존재하면 굉장히 복잡해진다. 따라서 예외처리를 하는 클래스를 따로 만들어서 처리하는 것이 효과적이다. 

728x90
반응형