Implemented optional C++ exceptions in Error class
These can be activated using the -DLAMMPS_EXCEPTIONS compiler flag. It has no effect for regular execution. However, while using it as a library, any issued command will capture the exception and save its error message. This can be queried using the lammps_has_error() and lammps_get_last_error_message() methods. The Python wrapper checks these in order to rethrow these errors as Python exceptions. See issue #146. (cherry picked from commit 6c154bb0b67a13d38968bc42d31013b97f87db75)
This commit is contained in:
@ -150,6 +150,11 @@ class lammps(object):
|
||||
if cmd: cmd = cmd.encode()
|
||||
self.lib.lammps_command(self.lmp,cmd)
|
||||
|
||||
if self.lib.lammps_has_error(self.lmp):
|
||||
sb = create_string_buffer(100)
|
||||
self.lib.lammps_get_last_error_message(self.lmp, sb, 100)
|
||||
raise Exception(sb.value.decode().strip())
|
||||
|
||||
def extract_global(self,name,type):
|
||||
if name: name = name.encode()
|
||||
if type == 0:
|
||||
|
||||
Reference in New Issue
Block a user