diff --git a/modules/io/src/mol/pdb_reader.cc b/modules/io/src/mol/pdb_reader.cc index 930ffbcf453f0563768d8aae0351f65fe6ac07bf..ee9cb18eddbb85499e54f4f8636c229e24748f3e 100644 --- a/modules/io/src/mol/pdb_reader.cc +++ b/modules/io/src/mol/pdb_reader.cc @@ -737,10 +737,15 @@ void PDBReader::ParseAndAddAtom(const StringRef& line, int line_num, if(charge.first) { if(line[79] != '-' && line[79] != '+') { std::stringstream ss; - ss << "error on line " << line_num << ": " - << "expect charge in format 1+, 2-, etc. got: " + ss << "invalid charge on line " << line_num << ": " + << "expected 1+, 2-, etc. got: " << line.substr(78, 2); - throw IOException(ss.str()); + if (profile_.fault_tolerant) { + LOG_WARNING(ss.str()); + charge.first = 0.0; + } else { + throw IOException(ss.str()); + } } if(line[79] == '-') charge.second *= (-1); }