본문 바로가기

프로그래밍/PyQt5

[python] try ~ except 로 예외 처리 및 Built-in Exceptions 사이트

 

pycharm을 이용해서 계산기를 구현할 때, 0으로 나누는 예외 및 잘못된 수식, 기타 오류들을 처리하기 위하여 try~except를 사용하여 코드를 작성하였습니다. 

이때, 예외처리 구문들은 직접 예외설정을 하는 것이 아니라 Built-in된 Exception들을 사용하여 처리가 가능합니다.

 

            try:
                self.lblDisp.setText(str(eval(self.expr))) 
            except ZeroDivisionError:
                self.lblDisp.setText("0으로 나눗셈 불가") ,
            except SyntaxError:
                self.lblDisp.setText("잘못된 수식")
            except Exception as e:
                self.lblDisp.setText("기타 오류")

try except 구문을 사용하면, 입력한 수식에서 0으로 나누거나 잘못된 수식이 입력된 경우에 try에 있는 구문을 실행하지 않고 바로 해당되는 except 구문을 실행합니다.

예외 처리가 되는 부분에서 프로그램이 비정상적으로 종료되지 않고 계속 실행하게 만들 수 있습니다. 

 

 

밑에 사이트에 Built-in Exceptions document가 있습니다.

https://docs.python.org/3/library/exceptions.html#exception-hierarchy

 

 

Built-in Exceptions — Python 3.10.2 documentation

In Python, all exceptions must be instances of a class that derives from BaseException. In a try statement with an except clause that mentions a particular class, that clause also handles any exception classes derived from that class (but not exception cla

docs.python.org