@puzzlepiece87 I would have to see what you are actually working with to give you ideas, but with most of my projects I have checks in place along the path of the return. So, for example, if I have a class which uses a Report which needs a FilePath and to get the filepath I need the Date of the report, I first check if the date doesn't exist, and if it is greater than Now(). If either of these are true, I'll return a Null. Same for the class which gets the FilePath.
If the date doesn't exist within the directory, it will return vbNullString. Then finally, the Report class sets the this.File variable equal to opening the workbook using the filepath provided (On Error Resume Next to silently fail). If the File Is Nothing then the EndOfResults variable used for looping through the results becomes True and the calling procedure knows none the wiser.
Along those lines, the class which handles interpreting TermWeek and DayOfWeek into a Date will try to find a date, but will loop backward a full Term (it is looking up from a PivotTable that stores the associations). If it can fill in a date by finding a previous week then it will. In this way, I can fill in missing dates without completely skipping a report in the event that the date is just missing (but the report exists).