Skip to content

Commit fb6833c

Browse files
committed
ENH: better error reporting in GroundTruthCreator
1 parent 7ed1998 commit fb6833c

File tree

1 file changed

+31
-16
lines changed

1 file changed

+31
-16
lines changed

test/itkMontageTruthCreator.cxx

+31-16
Original file line numberDiff line numberDiff line change
@@ -196,28 +196,43 @@ itkMontageTruthCreator(int argc, char * argv[])
196196
return EXIT_FAILURE;
197197
}
198198

199-
itk::ImageIOBase::Pointer imageIO =
200-
itk::ImageIOFactory::CreateImageIO(argv[1], itk::ImageIOFactory::FileModeType::ReadMode);
201-
imageIO->SetFileName(argv[1]);
202-
imageIO->ReadImageInformation();
203-
unsigned dim = imageIO->GetNumberOfDimensions();
204-
const itk::ImageIOBase::IOComponentType cType = imageIO->GetComponentType();
205-
206-
if (cType == itk::ImageIOBase::IOComponentType::UCHAR)
199+
try
207200
{
208-
return CreateGroundTruth<unsigned char>(argc, argv, dim, imageIO->GetPixelType());
201+
itk::ImageIOBase::Pointer imageIO =
202+
itk::ImageIOFactory::CreateImageIO(argv[1], itk::ImageIOFactory::FileModeType::ReadMode);
203+
imageIO->SetFileName(argv[1]);
204+
imageIO->ReadImageInformation();
205+
unsigned dim = imageIO->GetNumberOfDimensions();
206+
const itk::ImageIOBase::IOComponentType cType = imageIO->GetComponentType();
207+
208+
if (cType == itk::ImageIOBase::IOComponentType::UCHAR)
209+
{
210+
return CreateGroundTruth<unsigned char>(argc, argv, dim, imageIO->GetPixelType());
211+
}
212+
else if (cType == itk::ImageIOBase::IOComponentType::USHORT)
213+
{
214+
return CreateGroundTruth<unsigned short>(argc, argv, dim, imageIO->GetPixelType());
215+
}
216+
else if (cType == itk::ImageIOBase::IOComponentType::SHORT)
217+
{
218+
return CreateGroundTruth<short>(argc, argv, dim, imageIO->GetPixelType());
219+
}
220+
else
221+
{
222+
std::cerr << "Unsupported component type: " << itk::ImageIOBase::GetComponentTypeAsString(cType) << std::endl;
223+
}
209224
}
210-
else if (cType == itk::ImageIOBase::IOComponentType::USHORT)
225+
catch (itk::ExceptionObject & exc)
211226
{
212-
return CreateGroundTruth<unsigned short>(argc, argv, dim, imageIO->GetPixelType());
227+
std::cerr << exc;
213228
}
214-
else if (cType == itk::ImageIOBase::IOComponentType::SHORT)
229+
catch (std::runtime_error & exc)
215230
{
216-
return CreateGroundTruth<short>(argc, argv, dim, imageIO->GetPixelType());
231+
std::cerr << exc.what();
217232
}
218-
else
233+
catch (...)
219234
{
220-
std::cerr << "Unsupported component type: " << itk::ImageIOBase::GetComponentTypeAsString(cType) << std::endl;
221-
return EXIT_FAILURE;
235+
std::cerr << "Unknown error has occurred" << std::endl;
222236
}
237+
return EXIT_FAILURE;
223238
}

0 commit comments

Comments
 (0)