Merge pull request #36810 from akien-mga/configfile-better-errors
ConfigFile: Improve error messages
This commit is contained in:
commit
e8b68c48ea
3 changed files with 26 additions and 19 deletions
|
@ -86,7 +86,8 @@ void ConfigFile::set_value(const String &p_section, const String &p_key, const V
|
|||
Variant ConfigFile::get_value(const String &p_section, const String &p_key, Variant p_default) const {
|
||||
|
||||
if (!values.has(p_section) || !values[p_section].has(p_key)) {
|
||||
ERR_FAIL_COND_V_MSG(p_default.get_type() == Variant::NIL, Variant(), "Couldn't find the given section '" + p_section + "', key '" + p_key + "' and no default was given.");
|
||||
ERR_FAIL_COND_V_MSG(p_default.get_type() == Variant::NIL, Variant(),
|
||||
vformat("Couldn't find the given section \"%s\" and key \"%s\", and no default was given.", p_section, p_key));
|
||||
return p_default;
|
||||
}
|
||||
|
||||
|
@ -112,7 +113,7 @@ void ConfigFile::get_sections(List<String> *r_sections) const {
|
|||
}
|
||||
void ConfigFile::get_section_keys(const String &p_section, List<String> *r_keys) const {
|
||||
|
||||
ERR_FAIL_COND_MSG(!values.has(p_section), "Cannont get keys from nonexistent section '" + p_section + "'.");
|
||||
ERR_FAIL_COND_MSG(!values.has(p_section), vformat("Cannot get keys from nonexistent section \"%s\".", p_section));
|
||||
|
||||
for (OrderedHashMap<String, Variant>::ConstElement E = values[p_section].front(); E; E = E.next()) {
|
||||
r_keys->push_back(E.key());
|
||||
|
@ -121,12 +122,14 @@ void ConfigFile::get_section_keys(const String &p_section, List<String> *r_keys)
|
|||
|
||||
void ConfigFile::erase_section(const String &p_section) {
|
||||
|
||||
ERR_FAIL_COND_MSG(!values.has(p_section), vformat("Cannot erase nonexistent section \"%s\".", p_section));
|
||||
values.erase(p_section);
|
||||
}
|
||||
|
||||
void ConfigFile::erase_section_key(const String &p_section, const String &p_key) {
|
||||
|
||||
ERR_FAIL_COND_MSG(!values.has(p_section), "Cannot erase key from nonexistent section '" + p_section + "'.");
|
||||
ERR_FAIL_COND_MSG(!values.has(p_section), vformat("Cannot erase key \"%s\" from nonexistent section \"%s\".", p_key, p_section));
|
||||
ERR_FAIL_COND_MSG(!values[p_section].has(p_key), vformat("Cannot erase nonexistent key \"%s\" from section \"%s\".", p_key, p_section));
|
||||
|
||||
values[p_section].erase(p_key);
|
||||
}
|
||||
|
@ -291,7 +294,7 @@ Error ConfigFile::_parse(const String &p_path, VariantParser::Stream *p_stream)
|
|||
if (err == ERR_FILE_EOF) {
|
||||
return OK;
|
||||
} else if (err != OK) {
|
||||
ERR_PRINT("ConfgFile - " + p_path + ":" + itos(lines) + " error: " + error_text + ".");
|
||||
ERR_PRINT(vformat("ConfigFile parse error at %s:%d: %s.", p_path, lines, error_text));
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -324,11 +327,8 @@ void ConfigFile::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("save", "path"), &ConfigFile::save);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("load_encrypted", "path", "key"), &ConfigFile::load_encrypted);
|
||||
ClassDB::bind_method(D_METHOD("load_encrypted_pass", "path", "pass"), &ConfigFile::load_encrypted_pass);
|
||||
ClassDB::bind_method(D_METHOD("load_encrypted_pass", "path", "password"), &ConfigFile::load_encrypted_pass);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("save_encrypted", "path", "key"), &ConfigFile::save_encrypted);
|
||||
ClassDB::bind_method(D_METHOD("save_encrypted_pass", "path", "pass"), &ConfigFile::save_encrypted_pass);
|
||||
}
|
||||
|
||||
ConfigFile::ConfigFile() {
|
||||
ClassDB::bind_method(D_METHOD("save_encrypted_pass", "path", "password"), &ConfigFile::save_encrypted_pass);
|
||||
}
|
||||
|
|
|
@ -74,8 +74,6 @@ public:
|
|||
|
||||
Error save_encrypted(const String &p_path, const Vector<uint8_t> &p_key);
|
||||
Error save_encrypted_pass(const String &p_path, const String &p_pass);
|
||||
|
||||
ConfigFile();
|
||||
};
|
||||
|
||||
#endif // CONFIG_FILE_H
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
<argument index="0" name="section" type="String">
|
||||
</argument>
|
||||
<description>
|
||||
Deletes the specified section along with all the key-value pairs inside.
|
||||
Deletes the specified section along with all the key-value pairs inside. Raises an error if the section does not exist.
|
||||
</description>
|
||||
</method>
|
||||
<method name="erase_section_key">
|
||||
|
@ -48,6 +48,7 @@
|
|||
<argument index="1" name="key" type="String">
|
||||
</argument>
|
||||
<description>
|
||||
Deletes the specified key in a section. Raises an error if either the section or the key do not exist.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_section_keys" qualifiers="const">
|
||||
|
@ -56,7 +57,7 @@
|
|||
<argument index="0" name="section" type="String">
|
||||
</argument>
|
||||
<description>
|
||||
Returns an array of all defined key identifiers in the specified section.
|
||||
Returns an array of all defined key identifiers in the specified section. Raises an error and returns an empty array if the section does not exist.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_sections" qualifiers="const">
|
||||
|
@ -76,7 +77,7 @@
|
|||
<argument index="2" name="default" type="Variant" default="null">
|
||||
</argument>
|
||||
<description>
|
||||
Returns the current value for the specified section and key. If the section and/or the key do not exist, the method returns the value of the optional [code]default[/code] argument, or [code]null[/code] if it is omitted.
|
||||
Returns the current value for the specified section and key. If either the section or the key do not exist, the method returns the fallback [code]default[/code] value. If [code]default[/code] is not specified or set to [code]null[/code], an error is also raised.
|
||||
</description>
|
||||
</method>
|
||||
<method name="has_section" qualifiers="const">
|
||||
|
@ -105,7 +106,7 @@
|
|||
<argument index="0" name="path" type="String">
|
||||
</argument>
|
||||
<description>
|
||||
Loads the config file specified as a parameter. The file's contents are parsed and loaded in the ConfigFile object which the method was called on.
|
||||
Loads the config file specified as a parameter. The file's contents are parsed and loaded in the [ConfigFile] object which the method was called on.
|
||||
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
|
||||
</description>
|
||||
</method>
|
||||
|
@ -117,6 +118,8 @@
|
|||
<argument index="1" name="key" type="PackedByteArray">
|
||||
</argument>
|
||||
<description>
|
||||
Loads the encrypted config file specified as a parameter, using the provided [code]key[/code] to decrypt it. The file's contents are parsed and loaded in the [ConfigFile] object which the method was called on.
|
||||
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
|
||||
</description>
|
||||
</method>
|
||||
<method name="load_encrypted_pass">
|
||||
|
@ -124,9 +127,11 @@
|
|||
</return>
|
||||
<argument index="0" name="path" type="String">
|
||||
</argument>
|
||||
<argument index="1" name="pass" type="String">
|
||||
<argument index="1" name="password" type="String">
|
||||
</argument>
|
||||
<description>
|
||||
Loads the encrypted config file specified as a parameter, using the provided [code]password[/code] to decrypt it. The file's contents are parsed and loaded in the [ConfigFile] object which the method was called on.
|
||||
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
|
||||
</description>
|
||||
</method>
|
||||
<method name="parse">
|
||||
|
@ -145,7 +150,7 @@
|
|||
<argument index="0" name="path" type="String">
|
||||
</argument>
|
||||
<description>
|
||||
Saves the contents of the ConfigFile object to the file specified as a parameter. The output file uses an INI-style structure.
|
||||
Saves the contents of the [ConfigFile] object to the file specified as a parameter. The output file uses an INI-style structure.
|
||||
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
|
||||
</description>
|
||||
</method>
|
||||
|
@ -157,6 +162,8 @@
|
|||
<argument index="1" name="key" type="PackedByteArray">
|
||||
</argument>
|
||||
<description>
|
||||
Saves the contents of the [ConfigFile] object to the AES-256 encrypted file specified as a parameter, using the provided [code]key[/code] to encrypt it. The output file uses an INI-style structure.
|
||||
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
|
||||
</description>
|
||||
</method>
|
||||
<method name="save_encrypted_pass">
|
||||
|
@ -164,9 +171,11 @@
|
|||
</return>
|
||||
<argument index="0" name="path" type="String">
|
||||
</argument>
|
||||
<argument index="1" name="pass" type="String">
|
||||
<argument index="1" name="password" type="String">
|
||||
</argument>
|
||||
<description>
|
||||
Saves the contents of the [ConfigFile] object to the AES-256 encrypted file specified as a parameter, using the provided [code]password[/code] to encrypt it. The output file uses an INI-style structure.
|
||||
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
|
||||
</description>
|
||||
</method>
|
||||
<method name="set_value">
|
||||
|
@ -179,7 +188,7 @@
|
|||
<argument index="2" name="value" type="Variant">
|
||||
</argument>
|
||||
<description>
|
||||
Assigns a value to the specified key of the specified section. If the section and/or the key do not exist, they are created. Passing a [code]null[/code] value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed.
|
||||
Assigns a value to the specified key of the specified section. If either the section or the key do not exist, they are created. Passing a [code]null[/code] value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed.
|
||||
</description>
|
||||
</method>
|
||||
</methods>
|
||||
|
|
Loading…
Reference in a new issue