From 2247d46ccc88f2c940d297057feff5f77cb52e93 Mon Sep 17 00:00:00 2001 From: Otmane Lahlou <otmane.lahlou@c-s.fr> Date: Mon, 5 Sep 2011 16:30:19 +0200 Subject: [PATCH] ENH : some checks on the input image filename, and catch exception when input file is not readable --- Code/Core/otbWrapperInputImageParameter.cxx | 29 ++++++++++++++++----- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/Code/Core/otbWrapperInputImageParameter.cxx b/Code/Core/otbWrapperInputImageParameter.cxx index 08554076cd..f25fbed3ca 100644 --- a/Code/Core/otbWrapperInputImageParameter.cxx +++ b/Code/Core/otbWrapperInputImageParameter.cxx @@ -16,6 +16,7 @@ =========================================================================*/ #include "otbWrapperInputImageParameter.h" +#include "itksys/SystemTools.hxx" namespace otb { @@ -35,13 +36,29 @@ InputImageParameter::~InputImageParameter() void InputImageParameter::SetFromFileName(const std::string& filename) { - ImageFileReaderType::Pointer reader = ImageFileReaderType::New(); - reader->SetFileName(filename); - reader->UpdateOutputInformation(); + // First clear previous file choosen + this->ClearValue(); - // everything went fine, store the object references - m_Reader = reader; - m_Image = reader->GetOutput(); + // TODO : when the logger will be available, redirect the exception + // in the logger (like what is done in MsgReporter) + if (!filename.empty() + && itksys::SystemTools::FileExists(filename.c_str())) + { + ImageFileReaderType::Pointer reader = ImageFileReaderType::New(); + reader->SetFileName(filename); + try + { + reader->UpdateOutputInformation(); + } + catch(itk::ExceptionObject & err) + { + this->ClearValue(); + } + + // everything went fine, store the object references + m_Reader = reader; + m_Image = reader->GetOutput(); + } } std::string -- GitLab