dexter has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/28162 )

Change subject: pySim-shell: catch exceptions from walk() while exporting
......................................................................

pySim-shell: catch exceptions from walk() while exporting

When we run the exporter we also get an error summary at the end.
However, if walk() throws an eception this stops the exporter
immediately and we won't get the summpary. Lets catch exceptions from
walk as well so that we are able to end gracefully.

Change-Id: I3edc250ef2a84550c5b821a72e207e4d685790a5
---
M pySim-shell.py
1 file changed, 12 insertions(+), 5 deletions(-)

Approvals:
  dexter: Verified
  laforge: Looks good to me, approved



diff --git a/pySim-shell.py b/pySim-shell.py
index 0ed4b7c..f498dea 100755
--- a/pySim-shell.py
+++ b/pySim-shell.py
@@ -648,10 +648,17 @@
         context = {'ERR': 0, 'COUNT': 0, 'BAD': [],
                    'DF_SKIP': 0, 'DF_SKIP_REASON': []}
         kwargs_export = {'as_json': opts.json}
+        exception_str_add = ""
+
         if opts.filename:
             self.export_ef(opts.filename, context, **kwargs_export)
         else:
-            self.walk(0, self.export_ef, None, context, **kwargs_export)
+            try:
+                self.walk(0, self.export_ef, None, context, **kwargs_export)
+            except Exception as e:
+                print("# Stopping early here due to exception: " + str(e))
+                print("#")
+                exception_str_add = ", also had to stop early due to 
exception:" + str(e)

         self._cmd.poutput(boxed_heading_str("Export summary"))

@@ -666,14 +673,14 @@
             self._cmd.poutput("#  " + b)

         if context['ERR'] and context['DF_SKIP']:
-            raise RuntimeError("unable to export %i elementary file(s) and %i 
dedicated file(s)" % (
-                context['ERR'], context['DF_SKIP']))
+            raise RuntimeError("unable to export %i elementary file(s) and %i 
dedicated file(s)%s" % (
+                    context['ERR'], context['DF_SKIP'], exception_str_add))
         elif context['ERR']:
             raise RuntimeError(
-                "unable to export %i elementary file(s)" % context['ERR'])
+                    "unable to export %i elementary file(s)%s" % 
(context['ERR'], exception_str_add))
         elif context['DF_SKIP']:
             raise RuntimeError(
-                "unable to export %i dedicated files(s)" % context['ERR'])
+                    "unable to export %i dedicated files(s)%s" % 
(context['ERR'], exception_str_add))

     def do_reset(self, opts):
         """Reset the Card."""



4 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted 
one.
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/28162
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I3edc250ef2a84550c5b821a72e207e4d685790a5
Gerrit-Change-Number: 28162
Gerrit-PatchSet: 5
Gerrit-Owner: dexter <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-MessageType: merged

Reply via email to