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
- Images/Videos in storage appearing broke...
I am running into a storage issue after upgrading my self-hosted Appwrite instance , all of my previously uploaded images and videos are now showing as broken i...
- Pricing question for the civil society o...
Hey! Can someone help me out? 🥺 Do you have any discounts or programs for non-profit civil society organizations, even if they're not open-source? Or maybe you...
- executeFunction intermittently throws Fo...
Environment: Flutter app using the Appwrite Flutter SDK, calling executeFunction for [describe endpoint, e.g. live-stream-related function]. *Description*: Int...