Our system does not capture outer-most exceptions, and throws these annoying error messages that are rather hard to decipher on their own.
We've been building up a catalog of them, and they fit a collection of patterns.
We'd like to have a form with a field where someone can paste in an error or exception message that shows up in an email, click a button, and it would bring up anything in the database that matches this message pattern and any associated comments.
The first cut matches a Format pattern based on a collection of responses rather than a collection of these from the source code. (maybe we could go through and manually reconstruct RegEx patterns for these as there are only around 50 of them.)
So, for example, there may be this somewhere in a source file:
Raise Exception.Create( Format( '%s - Exception %s - something happened in xyz; %s - %d', [....] ) );
If the message in question looks like it fits this "template", then narrow down the search field to those we have documented that also match this template.
The second cut looks at specific data values -- so, for example, the 'xyz' and the word following it provided by "%s" or the following "%d"
'xyz' might be a table name or process, and the following field identifies a column name and value that it choked on.
In this case, the 'xyz' is the discriminant, while the next to parameters are just whatever was there that it choked on that time.
Eg, 'xyz' = ADDRESS TABLE and the following might be "ZIP_CODE = '' is not a valid number"
the underlying problem here is that we've got a bunch of StrToInt(...) calls and the developers chose them over StrToIntDef(...) because there may not be a realistic default value to supply. Usually these errors indicate one of two things: (1) a required field in the data file was left empty; or (2) there's an extra or missing comma (field-delim), or sometimes an extra or missing quote. (This is typically referring to a CSV file being imported.)
We want something that will search the list of exemplars (that require as little pre-processing as possible) and return any notes and explanations associated with any matches it finds.
I was thinking of perhaps adapting a chat bot for this purpose.
Does anybody have any experience building something like this that could offer any insights?