Custom exceptions are handy if you want to trap them specifically outside of a generic exception that can be caused by something else. For instance if you have a custom exception of InvalidImageDimensions then you could use it like :
...
try {
$resizedImage = $this->resizeImage($originalImage, 1024, -768);
} catch (InvalidImageDimensions $e) {
// do something specific
} catch (Exception $e) {
// some other thing
}
Maybe you only want to catch your own exceptions and let the others bubble up the system etc. In general I think they're best used sparingly though.
Custom exception is good when you want specific way to dealt with that exception. For instance, sometimes you want redirection to home page when you catch exception of that type.
here is link to thread how to handle custom exception