Skip to content
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

Prevent Core from crashing due to uncaught exceptions #173

Merged
merged 5 commits into from
Mar 7, 2022

Conversation

marktsuchida
Copy link
Member

Partially addresses #165.
Closes #105.

  • Take reasonable actions on error in functions that are not marked throw (CMMError)
  • Deprecate functions related to PropertyBlock, a seldom (never?) used feature, many of which will potentially crash
  • Deprecate functions related to ImageSynchro (not related to crashes but mentioned in Discussion of callback system in MMCore #164 (comment))

@marktsuchida
Copy link
Member Author

marktsuchida commented Mar 5, 2022

Unit tests to be written before this is ready.
Also should increment MMCore's minor version.

Most of these fail (except APIErrorTests.GetPixelSizeUmWithNoConfig).
And, in one case, a null pointer.

Did not fix PropertyBlock functions which should be deprecated.
It is not clear to me what these were intended for, but they are
probably part of a planned but unfinished feature (seeing that it
appears to be tied to an Equipment command in config files, which, as
far as I know, was never supported by the Hardware Configuration
Wizard).

Some of the functions deprecated here may crash when called with
incorrect parameters.
Among other things, it doesn't even do what it says because it only
applies to snap, not to sequence acquisition.

ImageSynchro has not been used by MMStudio for a long time.

Apps can simply wait for individual devices as needed.
This is for the new guaranteed behavior on errors for a few functions,
and the deprecation of PropertyBlock and ImageSynchro functions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

MMCoreJ crash due to null argument
1 participant