From e0fe08ed5ff1392bbf552caaf73e12efa1af1cd8 Mon Sep 17 00:00:00 2001 From: Jonathan Frey Date: Thu, 15 Aug 2024 12:57:23 +0200 Subject: [PATCH] any2jd: raise error if object cannot be converted --- jdataencode.m | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/jdataencode.m b/jdataencode.m index 2b73bb8..652d570 100644 --- a/jdataencode.m +++ b/jdataencode.m @@ -414,12 +414,15 @@ %% ------------------------------------------------------------------------- function newitem = any2jd(item, varargin) - -N = @(x) N_(x, varargin{:}); -newitem.(N('_DataInfo_')) = struct('MATLABObjectClass', class(item), 'MATLABObjectSize', size(item)); -newitem.(N('_ByteStream_')) = getByteStreamFromArray(item); % use undocumented matlab function -if (varargin{1}.base64) - newitem.(N('_ByteStream_')) = char(base64encode(newitem.(N('_ByteStream_')))); +try + N = @(x) N_(x, varargin{:}); + newitem.(N('_DataInfo_')) = struct('MATLABObjectClass', class(item), 'MATLABObjectSize', size(item)); + newitem.(N('_ByteStream_')) = getByteStreamFromArray(item); % use undocumented matlab function + if (varargin{1}.base64) + newitem.(N('_ByteStream_')) = char(base64encode(newitem.(N('_ByteStream_')))); + end +catch + error('any2jd: failed to convert object of type %s', class(item)); end %% -------------------------------------------------------------------------