Clean up bad PORTAGE_BINHOST handling

Suggested-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Reviewed-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index 95c5c14..19659fd 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -44,7 +44,7 @@
 from portage.dbapi._expand_new_virt import expand_new_virt
 from portage.dep import Atom
 from portage.eclass_cache import hashed_path
-from portage.exception import InvalidAtom, InvalidData
+from portage.exception import InvalidAtom, InvalidData, ParseError
 from portage.output import blue, bold, colorize, create_color_func, darkgreen, \
 	red, xtermTitle, xtermTitleReset, yellow
 good = create_color_func("GOOD")
@@ -3701,8 +3701,13 @@
 			# Populate the bintree with current --getbinpkg setting.
 			# This needs to happen before expand_set_arguments(), in case
 			# any sets use the bintree.
-			mytrees["bintree"].populate(
-				getbinpkgs="--getbinpkg" in emerge_config.opts)
+			try:
+				mytrees["bintree"].populate(
+					getbinpkgs="--getbinpkg" in emerge_config.opts)
+			except ParseError as e:
+				writemsg("\n\n!!!%s.\nSee make.conf(5) for more info.\n"
+						 % e, noiselevel=-1)
+				return 1
 
 	del mytrees, mydb
 
diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py
index 7b61c1f..229ce3b 100644
--- a/pym/portage/dbapi/bintree.py
+++ b/pym/portage/dbapi/bintree.py
@@ -27,7 +27,7 @@
 from portage.dbapi.virtual import fakedbapi
 from portage.dep import Atom, use_reduce, paren_enclose
 from portage.exception import AlarmSignal, InvalidData, InvalidPackageName, \
-	PermissionDenied, PortageException
+	ParseError, PermissionDenied, PortageException
 from portage.localization import _
 from portage import _movefile
 from portage import os
@@ -909,11 +909,9 @@
 								traceback.print_exc()
 
 							raise
-					except ValueError as _:
-						writemsg("\n\n!!! Invalid PORTAGE_BINHOST value "
-								 "'%s'.\nSee man make.conf(5) for more info."
-								 "\n" % url.lstrip(), noiselevel=-1)
-						exit(1)
+					except ValueError:
+						raise ParseError("Invalid Portage BINHOST value '%s'"
+										 % url.lstrip())
 
 				if f is None: