It’s really a matter of semantics. What does foo = latestpdf(d) mean?
Is it perfectly reasonable that there’s no latest file? Then sure, just return None.
Are you expecting to always find a latest file? Raise an exception. And yes, re-raising a more appropriate exception is fine.
If this is just a general function that’s supposed to apply to any directory, I’d do the former and return None. If the directory is, e.g., meant to be a specific data directory that contains an application’s known set of files, I’d raise an exception.