I'm not sure what you are looking for by "better". That said here is a suggestion.
Have your cmdlet write to the error stream if an error occurs. You'd use WriteError instead of WriteObject. The powershell script could then execute your cmdlet in a try/catch and catch errors that way. You could also translate error codes to warnings if that made sense for your app. Use WriteWarning. And finally there is ThrowTerminatingError if you want to terminate a script. ThrowTerminatingError can be caught as well, but if not the script terminates whereas if Write-Error isn't caught the script continues.
Here's a whole section at MSDN on cmdlets and error reporting: http://msdn.microsoft.com/en-us/library/windows/desktop/dd878251(v=vs.85).aspx