-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Catch Throw in Series Ctor/Dtor #709
Conversation
Destructors must not throw, which would abort. Test this.
this does not not necessarily catch the exception from. ~ADIOS2IOHandler(){ flush();} rather may have caught "fileBased output can not be written with no iterations" |
Thank you Junmin! Totally overlooked these. |
and write gracefully to `stderr`.
Would it be possible to move the code in *.hpp to *.cpp? |
For |
Checked again: we build a defaulted destructor and no member vars in the case ADIOS2 is not enabled, so keeping this in the header is fine here. |
Destructors must not throw, which would abort e.g. if
flush()
reports a late problem in~Series
or a backend's~...IOHandler
.Constructors can throw, but we must be able to catch this.
Typical problem: read-only opening of non-existent files throws in Ctor as it flushes all reads.