생성자에 새로운 연산자가있는 클래스를 만들었습니다. 새로운 연산자 실패를 관리하기 위해 생성자에 경비원을 만들었지 만 지금은 테스트하고 싶습니다.새 연산자 테스트에 실패했습니다.
예를 들어, 나는이처럼 생성자를했습니다 :
Function::Function()
{
try
{
m_pxArgument = new Argument();
}
catch(std::bad_alloc)
{
throw MemoryException();
}
}
그것이 내가 내 catch 코드를 테스트하는 데 실패 new 연산자를 말할 수있는 테스트를 만들 수 있습니까?
저는 전문 프로그래머가 아니지만, 생성자 밖에서'try'를 사용하는 것이 더 좋습니다. –
'Argument'는 클래스/구조체입니까? – PiotrNycz
단지 예일 뿐이므로 실제 클래스가 더 복잡하고 라이브러리 특정 예외를 처리하기 때문에 try 문은 내부에 있어야합니다. 이 경우 std :: bad_alloc은 유효한 예외이지만 내부 관리에 의해 throw됩니다. 내 의견으로는 좋지 않습니다. 사용자는 클래스 내부에 대해서는 알지 못하고, 내부 예외에 대해서도 알지 못한다. – Jepessen