flutter future catcherror code example
Example 1: dart try
HOW TO HANDLE EXCEPTIONS IN DART/FLUTTER!
# ------------------------ CASE 1: --------------------------- #
When you know the exception to be thrown, use ON Clause
try {
int result = 12 ~/ 0;
print("The result is $result");
} on IntegerDivisionByZeroException {
print("Cannot divide by Zero");
}
# ------------------------ CASE 2: --------------------------- #
When you do not know the exception use CATCH Clause
try {
int result = 12 ~/ 0;
print("The result is $result");
} catch (e) {
print("The exception thrown is $e");
}
# ------------------------ CASE 3: --------------------------- #
Using STACK TRACE to know the events that occurred before the
Exception was thrown (trace and print the code steps after the
error)
try {
int result = 12 ~/ 0;
print("The result is $result");
} catch (e, s) {
print("The exception thrown is $e");
print("STACK TRACE \n $s");
}
# ------------------------ CASE 4: --------------------------- #
Whether there is an Exception or not, FINALLY Clause is always
Executed
try {
int result = 12 ~/ 3;
print("The result is $result");
} catch (e) {
print("The exception thrown is $e");
} finally {
print("This is FINALLY Clause and is always executed.");
}
# ------------------------ CASE 5: --------------------------- #
Custom Exception.The throw keyword is used to explicitly raise
an exception, and, in this case, that exception was defined by
the following exemple:
void main(){
try {
depositMoney(-200);
} catch (e) {
print(e.errorMessage());
} finally {
}
}
class DepositException implements Exception {
String errorMessage() {
return "You cannot enter amount less than 0";
}
}
void depositMoney(int amount) {
if (amount < 0) {
throw new DepositException();
}
}
Example 2: flutter future return error
return Future.error("This is the error", StackTrace.fromString("This is its trace"));