I have code like this (pseudocode) foreach(Box box in boxes) { if(boxFilter.Pass
ID: 652468 • Letter: I
Question
I have code like this (pseudocode)
foreach(Box box in boxes)
{
if(boxFilter.PassesFilter(box))
{
// do something useful
}
else
{
Log.Log(format("Box %s was rejected", box.BoxId))
}
}
But now I'm thinking I'd like the log message to have more information such as "Box 1 rejected because too tall" or 'Box 549 rejected: 25" height exceeds Max height of 24"'.
What's the best idiom to get this information into the log? Do I have to create a FilterResult object that is returned from the PassesFilter method? Or I guess I could also throw an exception and catch it and log it? Or something else?
I happen to be using C++.
Explanation / Answer
I can see two main options here; an enum could be returned, or you could use an exception.
Personally, I would use an exception, but I'm not an experience C++ programmer, so I'm not sure if it fits the common idiom of the language.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.