소스 검색

Better error message for YAML syntax errors (#7217)

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Lemongrass3110 2 년 전
부모
커밋
329158ac93
1개의 변경된 파일10개의 추가작업 그리고 1개의 파일을 삭제
  1. 10 1
      src/common/database.cpp

+ 10 - 1
src/common/database.cpp

@@ -106,7 +106,16 @@ bool YamlDatabase::load(const std::string& path) {
 	fclose(f);
 
 	parser = {};
-	ryml::Tree tree = parser.parse_in_arena(c4::to_csubstr(path), c4::to_csubstr(buf));
+	ryml::Tree tree;
+
+	try{
+		tree = parser.parse_in_arena(c4::to_csubstr(path), c4::to_csubstr(buf));
+	}catch( const std::runtime_error& e ){
+		ShowError( "Failed to load %s database file from '" CL_WHITE "%s" CL_RESET "'.\n", this->type.c_str(), path.c_str() );
+		ShowError( "There is likely a syntax error in the file.\n" );
+		ShowError( "Error message: %s\n", e.what() );
+		return false;
+	}
 
 	// Required here already for header error reporting
 	this->currentFile = path;