Currently, block errors are nicely caught by the base datablock (base.py), allowing errors and warnings to be displayed in the frontend. However, this catching means that the log always reports all errors as coming from the file base.py, instead of the file/line where the error actually occurred.
For example:

It would improve DX to log more informative information about where the error originated.