feat(change_detector): wrap exceptions into ChangeDetectionError

ChangeDetectionError references the original error and the location where the error happened