From: Niemann, H. <har...@si...> - 2018-04-06 10:04:16
|
Hello! I am using Jython 2.7.0 embedded into a java application, that is: not the jython.exe, on windows. When an exception parameter or a line in the stack trace contains an Umlaut, there seems to be an exception in the exception handler itself, because all I get (if one of the source lines has umlauts) is Exception in thread "main" Exception: org.python.core.PyException thrown from the UncaughtExceptionHandler in thread "main" If the string representation of the exception itself contains an umlaut, stack trace and type of the exception are printed, but the argument is missing. (If run from jython.exe, the output is completely readable, although some garbage characters are printed instead of the umlauts, which is (sort of) to be expected.) if I catch the exception like except Exception as e: print ('Uncaught exception in main: %s' % e) print (sys.exc_info()) import traceback traceback.print_tb(sys.exc_info()[2]) i get reasonable output. ---- the snippet from the embedding java function is: //start python PythonInterpreter.initialize(null, null, argv.toArray(new String[0])); PythonInterpreter py; py = new PythonInterpreter(); //exec py.exec("import cpsgen_py"); PyObject ret; ret = py.eval("cpsgen_py.main()"); if (ret instanceof PyInteger) { return ((PyInteger) ret).getValue(); } --- a simple examle to try is s = 'Hallöle' assert False, s # ä What do I see here? Am I doing something wrong when setting up the interpreter? Mit freundlichen Grüßen Dr. Hartmut Niemann Siemens AG Mobility Division Rolling Stock Standardization, Remote Control, Display MO RS LM EN CCI SRD Werner-von-Siemens-Str. 67 91052 Erlangen, Deutschland Mobil: +49 173 5342327 mailto:har...@si... www.siemens.com/ingenuityforlife Siemens Aktiengesellschaft: Vorsitzender des Aufsichtsrats: Jim Hagemann Snabe; Vorstand: Joe Kaeser, Vorsitzender; Roland Busch, Lisa Davis, Klaus Helmrich, Janina Kugel, Cedrik Neike, Michael Sen, Ralf P. Thomas; Sitz der Gesellschaft: Berlin und München, Deutschland; Registergericht: Berlin Charlottenburg, HRB 12300, München, HRB 6684; WEEE-Reg.-Nr. DE 23691322 |