관리 메뉴

100세까지 코딩

[백준] 10951번 A+B (파이썬) + 예외 처리 본문

코딩테스트/파이썬

[백준] 10951번 A+B (파이썬) + 예외 처리

100세까지 코딩 2024. 1. 7. 17:17
문제

나의 생각
  • try-except를 써서 파일의 끝을 판단하는 연습 문제이다.
나의 풀이 (EOFError 처리)
while True:
    try:
        A, B = map(int, input().split())
        print(A + B)
    except EOFError:
        break

- input()함수는 EOF를 만나면 EOFError를 발생시킨다.

 

나의 풀이2 (except로 모든 예외 처리)
while True:
    try:
        A, B = map(int, input().split())
        print(A + B)
    except :
        break

- except만 사용하면 모든 에러에 대한 처리를 해준다.

 

나의 풀이3 (sys.stdin.readline()으로 ValueError 처리)
import sys
while True:
    try:
        A, B = map(int, sys.stdin.readline().split())
        print(A + B)
    except ValueError:
        break

- sys.stdin.readline()은 에러 발생 안시키고 개행문자를 넘긴다. 그러나 A,B에 정수형 숫자 2개가 와야한다.

- 즉, ValueError 발생

 

나의 풀이4 (sys.stdin.readlines()로 파일 전체 가져오기)
import sys

lines = sys.stdin.readlines()
for line in lines:
    A, B = map(int, line.split())
    print(A+B)

- sys.stdin.readlines()로 파일을 한번에 다 읽기

 

참고
while True:
    try:
        A, B = map(int, input().split())
        print(A + B)
    except ValueError:
        break

파일을 읽으면 input()은 EOFError를 발생시키므로 ValueError를 넣으면 런타임에러가 뜬다.