diff --git a/source/dub/packagemanager.d b/source/dub/packagemanager.d index bc941e9..bd6a47a 100644 --- a/source/dub/packagemanager.d +++ b/source/dub/packagemanager.d @@ -421,11 +421,16 @@ return p; } - auto pack = new Package(path); - enforce(pack.name.length, "The package has no name, defined in: " ~ path.toString()); - pack.ver = ver; - addPackages(m_temporaryPackages, pack); - return pack; + try { + auto pack = new Package(path); + enforce(pack.name.length, "The package has no name, defined in: " ~ path.toString()); + pack.ver = ver; + addPackages(m_temporaryPackages, pack); + return pack; + } catch (Exception e) { + logDiagnostic("Error loading package at %s: %s", path.toNativeString(), e.toString().sanitize); + throw new Exception(format("Failed to add temporary package at %s: %s", path.toNativeString(), e.msg)); + } } Package getTemporaryPackage(Path path)