maui-samples icon indicating copy to clipboard operation
maui-samples copied to clipboard

Improve exception handling and add null safety across multiple samples

Open xingarr opened this issue 3 months ago • 2 comments

Description

This PR improves code quality across the maui-samples repository by enhancing exception handling and adding defensive programming practices. The changes affect both 9.0 and 10.0 sample versions.

Changes Made

🔧 Exception Handling Improvements

  • Replaced generic catch (Exception) blocks with specific exception types
  • Added proper error logging with detailed diagnostic messages
  • Improved error context for better debugging experience

🛡️ Null Safety & Defensive Programming

  • Added null validation in TodoRepository methods (Insert, Update, Delete)
  • Added parameter validation to prevent ArgumentNullException
  • Improved error messages with specific exception details

📁 Files Modified (18 files total)

TodoREST API (4 files)

  • 10.0/WebServices/TodoREST/TodoAPI/Services/TodoRepository.cs
  • 10.0/WebServices/TodoREST/TodoAPI/Controllers/TodoItemsController.cs
  • 9.0/WebServices/TodoREST/TodoAPI/Services/TodoRepository.cs
  • 9.0/WebServices/TodoREST/TodoAPI/Controllers/TodoItemsController.cs

Employee Directory (2 files)

  • 10.0/Apps/EmployeeDirectory/EmployeeDirectory/Data/XmlFavoritesRepository.cs
  • 9.0/Apps/EmployeeDirectory/EmployeeDirectory/Data/XmlFavoritesRepository.cs

Xaminals Shell Sample (4 files)

  • 10.0/Fundamentals/Shell/Xaminals/Views/CatDetailPage.xaml.cs
  • 10.0/Fundamentals/Shell/Xaminals/Views/DogDetailPage.xaml.cs
  • 9.0/Fundamentals/Shell/Xaminals/Views/CatDetailPage.xaml.cs
  • 9.0/Fundamentals/Shell/Xaminals/Views/DogDetailPage.xaml.cs

WhatToEat App (6 files)

  • 10.0/Apps/WhatToEat/src/WhatToEat/ViewModels/RecipeDetailViewModel.cs
  • 10.0/Apps/WhatToEat/src/WhatToEat/ViewModels/SearchResultDetailViewModel.cs
  • 10.0/Apps/WhatToEat/src/WhatToEat/ViewModels/EditRecipeViewModel.cs
  • 9.0/Apps/WhatToEat/src/WhatToEat/ViewModels/RecipeDetailViewModel.cs
  • 9.0/Apps/WhatToEat/src/WhatToEat/ViewModels/SearchResultDetailViewModel.cs
  • 9.0/Apps/WhatToEat/src/WhatToEat/ViewModels/EditRecipeViewModel.cs

Benefits

  • Improved Reliability: Null checks prevent runtime crashes
  • Better Debugging: Specific exception types make issues easier to diagnose
  • Production Ready: Proper error handling with logging placeholders
  • Best Practices: Follows C# and .NET MAUI coding standards
  • Better Learning Resource: Sample code demonstrates proper exception handling patterns

Testing

  • All changes maintain backward compatibility
  • No breaking changes to public APIs
  • Code follows existing repository style guidelines

Related Issues

Addresses common code quality issues found in the repository including:

  • Generic exception catching without proper error context
  • Missing null checks leading to potential NullReferenceException
  • Inconsistent error logging practices

Checklist

  • [x] Code follows the project's coding standards
  • [x] Changes are applied to both 9.0 and 10.0 versions where applicable
  • [x] No breaking changes introduced
  • [x] Error messages are clear and helpful for debugging

Contribution by Gittensor, learn more at https://gittensor.io/

xingarr avatar Nov 10 '25 01:11 xingarr