You should pass the whole call:
@Safe(() => SomeClass.SomeClass.SomeClass.ID.ToString(), "value not found")
The reason you have to do it this way, is because now the exception will occur inside your method. Otherwise it will already throw a NullReferenceException before it can get to the ToString-method.