summaryrefslogtreecommitdiff
path: root/lib/Carton/Lock.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Carton/Lock.pm')
-rw-r--r--lib/Carton/Lock.pm6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/Carton/Lock.pm b/lib/Carton/Lock.pm
index cb83025..0855df0 100644
--- a/lib/Carton/Lock.pm
+++ b/lib/Carton/Lock.pm
@@ -3,12 +3,14 @@ use strict;
use Config;
use Carton::Dist;
use Carton::Dist::Core;
+use Carton::Error;
use Carton::Package;
use Carton::Index;
use Carton::Util;
use CPAN::Meta;
use CPAN::Meta::Requirements;
use File::Find ();
+use Try::Tiny;
use Module::CoreList;
use Moo;
@@ -20,7 +22,9 @@ use constant CARTON_LOCK_VERSION => '0.9';
sub from_file {
my($class, $file) = @_;
- my $data = Carton::Util::load_json($file);
+ my $data = try { Carton::Util::load_json($file) }
+ catch { Carton::Error::LockfileParseError->throw(error => "Can't parse carton.lock", path => $file) };
+
return $class->new($data);
}