2016-11-17 1 views
8

저는 Stroustrup의 C++ Programming Language 4th Edition에서 연습하고 있습니다. 작업 중 하나는 다음과 같이 공식화됩니다.모든 예외에 대해 하나의 기본 클래스를 갖는 단점은 무엇입니까?

예외로 사용되는 모든 클래스의 기본 클래스로 사용하는 것을 고려하십시오. 어떻게 생겼을 까? 어떻게 사용해야합니까? 그것은 무슨 소용이겠습니까? 이러한 클래스를 사용해야한다는 단점으로 인해 어떤 단점이 발생할 수 있습니까? 내가 상상할 수있는 유일한 사람은 일반적으로 무시할 간주됩니다 __vptr의 비용이 -

는 대답은 거의 std::exception 같은 단점 부분에 대한 저장 보인다. 내가 여기서 무엇을 놓치고 있니?

+1

이것은 의견 기반 질문이며 예외 사용 방법을 보는 방법에 따라 다릅니다. 그가 이것을 썼을 때 그가 생각하고있는 단점은 아마도 소비자가 예외적 인 상황을 실제로 다루지 않는 포괄적 인 코드를 작성할 수 있다는 것입니다. –

답변

1

단점은 상속 트리의 맨 아래에있는 예외를 잡으려고하면 그 중 하나에서 파생 된 모든 예외를 catch하고 일부는 예상했던 것과 매우 다른 것을 나타낼 수 있다는 것입니다.

예외를 throw 할 수있는 많은 기능을 사용하고 그 중 일부가 무엇인지 알지 못하는 개발자는 오류가 발생하면 단순히 기본 클래스 Exception을 catch하여 불특정 Exception 인스턴스 만 반환 할 수 있습니다 , 코드를 디버그하는 것을 어렵게 만들고, 문제를 일으키지 않아야하는 쉽게 고칠 수있는 예외 때문에 전체 프로그램이 실패 할 수도 있습니다.