Hello! I am currently doing some error handling in my app and I noticed, that I can't find any good way to programatically check what the exact error was. Take the following code as an example
try {
account = await _account.create(
userId: ID.unique(),
name: username,
email: email,
password: password,
);
} on AppwriteException catch (e) {
if(e.code == 400 && e.type == 'general_argument_invalid') {
// Could be that the email is not provided correctly, that the password is not strong enough etc.
}
}
The create account method can give multiple exceptions. I can access e.code with the response code and e.type. These two give me some information on what happened, but to really check what has happended I need to check e.message. But I don't feel like e.message is a good approach. The e.message is written in a good human readable form, making it difficult to check. E.g. the e.mesage for when the password is invalid would be: Invalid password: Password must be at least 8 characters and should not be one of the commonly used password.
I can't just do e.message = 'Invalid password: Password must be at least 8 characters and should not be one of the commonly used password.', because this message is something that could change very fast in the sdk or somewhere else. So what is the recommended approach to handle specific errors?
And what do you need to do after checking what kind of error it is?
Showing the user a snackbar that the mail is not provided correctly or that the password is not strong enough. I kno, e.message is written in a human-readable language and can be used, but what if I want to use other messages or want to translate it into other languages?
Recommended threads
- Getting current user has been blocked
Getting current user has been blocked error while signing in the appwrite console. Got this during I am testing with the my saas web project. Please help to unb...
- vorafy.studio domain already exists erro...
My domain vorafy.studio is stuck/locked from a previously deleted project. I created a new project but can't add the domain — getting 'already exists' error. Pl...
- GB Hours IS NOT resetting
Hi, I was checking my usage and noticed that all of my usage quotas were reset on August 20, 2026, when my billing cycle renewed. Everything else appears to ha...