Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod Read (const Exception exception) as owning LibOpt_Error 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    substrings := exception.Message().Tokenize( LibOpt_SnapshotError::SeparatorDetailedInformation() ); 
 | 
     
 | 
    // Substring the message to find the correct messages. 
 | 
    result := construct( LibOpt_Error ); 
 | 
    if( substrings.Size() = 2 ) 
 | 
    { 
 | 
      result.Code( exception.ErrorNumber() ); 
 | 
      result.GeneralInformation( substrings.Element( 0 ) ); 
 | 
      result.DetailedInformation( substrings.Element( 1 ) ); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      result.Code( exception.ErrorNumber() ); 
 | 
      result.GeneralInformation( exception.Message() ); 
 | 
      result.DetailedInformation( '' ); 
 | 
    } 
 | 
     
 | 
    return & result; 
 | 
  *] 
 | 
} 
 |