Exception


try...except...else...finally

def calc(values):
    sum = None
    # try...except...else
    try:
       sum = values[0] + values[1] + values[2]
    except IndexError as err:
        print('인덱스에러')
    except Exception as err:
        print(str(err))
    else:
        print('에러없음')
    finally:
        print(sum)
def calc(values):
    sum = None
    try:
       sum = values[0] + values[1] + values[2]
    except (IndexError, ValueError):
        print('오류발생')

    print(sum)

에러 발생 및 회피

# pass 를 사용한 예
try:
   check()
except FileExistsError:
    pass

# raise 를 사용한 예
if total < 0:
    raise Exception('Total Error')

파일 처리 예제

  • 전형적인 파일 에러 처리를 보여주는 코드 finally 위치가 저기 있는 것이 맞는가?

    try:
    fp = open("test.txt", "r")
    try:
       lines = fp.readlines()
       print(lines)
    finally:
       fp.close()
    except IOError:
    print('파일에러')
    
  • with 문을 써서 해당 블럭이 끝나면 자동으로 파일을 닫는 코드의 예 Python의 with 문은 C#의 using 문과 비슷한 것으로 with 블럭이 끝날 때 자동으로 리소스를 해제하는 역활을 하는데, 특히 주목할 점은 with 블럭 내에서 어떤 Exception이 발생하더라도 반드시 리소스를 해제한다는 점이다.

    with open('test.txt', 'r') as fp:
     lines = fp.readlines()
     print(lines)
    

results matching ""

    No results matching ""