Expand description
§Error Handling for SWIFT MT Message Library
§Purpose
Comprehensive error types and result handling for SWIFT MT message parsing, validation, and processing. Provides detailed error information for debugging and error recovery.
§Error Categories
- Parse Errors: Issues during message parsing and field extraction
- Validation Errors: Field format and business rule validation failures
- Type Errors: Message type mismatches and unsupported formats
- IO Errors: File system and network-related errors
- Serialization Errors: JSON and data conversion issues
§Error Design
All errors implement:
std::error::Error
trait for standard error handlingSerialize
/Deserialize
for API error responsesClone
for error propagation and loggingDebug
for comprehensive debugging information
§Usage Examples
use swift_mt_message::errors::{ParseError, ValidationError, Result};
use swift_mt_message::parser::SwiftParser;
use swift_mt_message::ValidationResult;
// Handle parsing errors
match SwiftParser::parse_auto(&invalid_message) {
Ok(message) => println!("Parsed successfully: {:?}", message),
Err(ParseError::InvalidFieldFormat(err)) => {
eprintln!("Format error in field {}: {}", err.field_tag, err.component_name);
},
Err(ParseError::MissingRequiredField { field_tag, field_name, .. }) => {
eprintln!("Missing required field: {} ({})", field_tag, field_name);
},
Err(other) => eprintln!("Other error: {}", other),
}
// Handle validation errors
let validation_result = ValidationResult::with_errors(vec![
ValidationError::FormatValidation {
field_tag: "20".to_string(),
message: "Invalid format".to_string()
},
]);
if !validation_result.is_valid {
for error in validation_result.errors {
match error {
ValidationError::FormatValidation { field_tag, message } => {
eprintln!("Field {} format error: {}", field_tag, message);
},
ValidationError::BusinessRuleValidation { rule_name, message } => {
eprintln!("Business rule {} failed: {}", rule_name, message);
},
_ => eprintln!("Validation error: {}", error),
}
}
}
§Error Recovery
Many errors provide sufficient context for automated error recovery:
- Field validation errors include expected formats for correction
- Parse errors include position information for partial recovery
- Business rule errors include rule names for selective validation
Modules§
- error_
codes - SWIFT Error Code Constants
Structs§
- Field
Parse Result - Result of parsing a field with potential error
- Invalid
Field Format Error - Details for invalid field format errors
- Parse
Error Collection - Collection of parsing errors for comprehensive error reporting
- Parser
Config - Parser configuration options
- Swift
Business Error - C-Series: Conditional/Business Rules Error
- Swift
Content Error - D-Series: Data/Content Validation Error
- Swift
Format Error - T-Series: Technical/Format Validation Error
- Swift
General Error - G-Series: General/Field Validation Error
- Swift
Relation Error - E-Series: Enhanced/Field Relation Validation Error
Enums§
- Parse
Error - Main error type for parsing operations
- Parse
Result - Result type for parse operations with error collection
- Swift
Validation Error - Comprehensive SWIFT validation error system based on SWIFT Standard Error Codes
- Validation
Error - Validation error for field-level validation
Type Aliases§
- Result
- Result type alias for the library
- Swift
Validation Result - Enhanced result type for SWIFT validation operations