개발공부

예외처리 try, catch, throw

파란색까마귀 2022. 2. 14. 15:40

2016. 11. 12. 13:51

https://blog.naver.com/nagne2011/220859807063

 

 

가장 간단하고 대중적인 예외처리 방법은if문과 else, else if같은 조건문을 이용하는 방법이다

 

예시를 들 필요도 없이, if(A) B; else C, 만약 A가 참이라면 B, 거짓이라면 C라는 간단한 조건문을 이용하여

예외 상황을 분류하게 해준다

 

그러나 C++에서는 try문과 catch문을 이용하여 예외처리를 세울 수 있다

1
2
3
4
5
6
7
8
try
{
    //일반적으로 작동할 발생할 코드 (try는 무조건 실행된다)
}
catch(/*조건*/)
{
    //조건에 맞춰 예외처리
}
cs

 

그리고 위 catch문을 도와주는 trow문이 있다

 

1
2
3
4
5
6
if(/*조건*/)
{
    throw //던져버릴 조건
cs

 

이렇게 조건을 던져주면 catch에서 받아서 실행하는 구조다

 

아래의 예시처럼 사용한다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int i = 0;
 
      std::cout << "두 개의 숫자 입력 : " << std::endl;
    std::cin >> i; //i값 입력
 
try
{
    if(i == 0)        //i가 0일경우
       throw i;        //i를 던진다
 
catch(int exception)
{
      return 0;        //예외상황이 생기면 실행
}
cs

 

하지만 try-catch문의 단점이 있다

가장 큰 단점은 성능이 느려지고 용량이 커지게된다 (소스의 길이 증가)

게다가 if문을 전부 try-catch로 바꿀 수 없고

동적할당한 메모리가 해제되지 않을 수 있다

 

따라서 코드의 가독성과 성능사이에서 적절한 조절이 필요하다

 

728x90

'개발공부' 카테고리의 다른 글

개발툴 - 1 - BitBucket  (0) 2022.02.15
개발툴 - 0 - Git  (0) 2022.02.15
c# XML 저장 불러오기  (0) 2022.02.13
c# 텍스트 저장  (0) 2022.02.13
c# try-catch  (0) 2022.02.13