Dart

18. Debugging

                                      Dart Debugging

Debugging in Dart, like in many programming languages, is a critical skill for identifying and fixing errors or unexpected behavior in your code. Dart provides several tools and techniques to help you debug your applications effectively. Here’s a guide to debugging Dart applications:

 


  1. Using `print` Statements

One of the simplest debugging techniques is using `print` statements to output variable values, function calls, or any other relevant information to the console. This helps you track the flow of your program and observe the state of variables at different points.

Example:

void main() {
  var name = 'Alice';
  print('Start of program');
  
  // Printing variable values
  print('Name: $name');
  
  // Debugging function calls
  var result = calculateResult(10, 5);
  print('Result: $result');
  
  print('End of program');
}

int calculateResult(int a, int b) {
  // Debugging inside functions
  print('Calculating result...');
  return a + b;
}

  1. Using `assert` Statements

Dart provides `assert` statements to check for conditions that must be true during development and testing but are not needed for production code. If the condition in an `assert` statement evaluates to `false`, an assertion error is thrown.

Example:

void main() {
  var age = 15;
  
  // Assertion to check age is greater than 18
  assert(age > 18, 'Age must be greater than 18');
  
  print('Age: $age');
}`
To test run this:

dart run –enable-asserts debug.dart

  1. Handling Exceptions

Use `try-catch` blocks to handle exceptions and errors gracefully in your Dart code. This prevents your application from crashing and allows you to handle errors in a controlled manner.

Example:

void main() {
  try {
    var result = divide(10, 0); // This will throw an exception
    print('Result: $result'); // This line will not be executed
  } catch (e) {
    print('Error: $e'); // Handle the exception
  }
}

double divide(int a, int b) {
  if (b == 0) {
    throw Exception('Cannot divide by zero');
  }
  return a / b;
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *