If user inherits Exception and overrides the properties to arbitrary data types, or simply doesn't run parent::__construct(), here we go. Just convert everything to the appropriate data type, like Exception::__toString() does.