←Select platform

ErrorMode Property

Summary

Indicate how to handle errors when reading barcodes.

Syntax

C#
VB
Java
Objective-C
C++
public BarcodeReaderErrorMode ErrorMode { get; set; } 
Public Property ErrorMode As Leadtools.Barcode.BarcodeReaderErrorMode 
@property (nonatomic, assign) LTBarcodeReaderErrorMode errorMode 
public BarcodeReaderErrorMode getErrorMode() 
public void setErrorMode(BarcodeReaderErrorMode value) 
             

Property Value

An BarcodeReaderErrorMode enumeration member that indicates how to handle errors when reading barcodes. The default value is BarcodeReaderErrorMode.Default.

Remarks

The BarcodeReader object might encounter errors when reading barcodes. By default, when an error is encountered, an exception is thrown, usually of type BarcodeException with the BarcodeException.Code set to one of the BarcodeExceptionCode enumeration members for more details regarding the error. This is the default behavior.

Sometimes, this behavior is not the desired one, for example:

  • The application is trying to decode barcodes on an "if found and correct" basis. If there were corrupted barcodes, the action is to ignore them and to continue. In this case, you can set the error mode to BarcodeReaderErrorMode.IgnoreAll.

    The application is reading multiple barcodes from an image, and the action is to ignore the corrupted barcodes and return only the valid ones found. In this case, you can set the error mode to BarcodeReaderErrorMode.IgnoreAll and subscribe to the BarcodeReader.ReadSymbology event to get a notification when an error occurs and save the exception for later use. You can then handle these errors when all barcodes are read and the read method returns.

The LEADTOOLS C# and VB Barcode Demo changes the value of ErrorMode to BarcodeReaderErrorMode.IgnoreAll and uses the BarcodeReader.ReadSymbology event to show the errors encountered in a list box.

Note that when the BarcodeReader does not find any barcodes in the image, no exception is thrown. Instead, BarcodeReader.ReadBarcode and BarcodeReader.ReadBarcodes methods will return null (Nothing in VB) or an empty array of BarcodeData type.

Example

This example changes the value of BarcodeReader.ErrorMode before reading all the barcodes from an image. It will then show any errors encountered after the read operation returns.

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Barcode; 
using Leadtools.ImageProcessing; 
 
private List<Exception> myErrors;   // List of errors 
public void BarcodeReader_ErrorModeExample() 
{ 
   string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "Barcode1.tif"); 
 
   // Create a Barcode engine 
   BarcodeEngine engine = new BarcodeEngine(); 
 
   // Get the Barcode reader instance 
   BarcodeReader reader = engine.Reader; 
 
   // Load the image 
   using (RasterCodecs codecs = new RasterCodecs()) 
   { 
      using (RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
      { 
         myErrors = new List<Exception>(); 
 
         // Disable the errors 
         reader.ErrorMode = BarcodeReaderErrorMode.IgnoreAll; 
 
         // Subscribe to the ReadSymbology event 
         reader.ReadSymbology += new EventHandler<BarcodeReadSymbologyEventArgs>(myReader_ReadSymbology); 
         // Read all barcodes in the image 
         reader.ReadBarcodes(image, LeadRect.Empty, 0, null); 
         reader.ReadSymbology -= new EventHandler<BarcodeReadSymbologyEventArgs>(myReader_ReadSymbology); 
 
         // Show the errors 
         if (myErrors.Count > 0) 
         { 
            Console.WriteLine("Errors encountered:"); 
            foreach (Exception error in myErrors) 
            { 
               Console.WriteLine(error.Message); 
            } 
         } 
      } 
   } 
} 
 
private void myReader_ReadSymbology(object sender, BarcodeReadSymbologyEventArgs e) 
{ 
   // If we encounter an error, save it to our list 
   if (e.Error != null) 
   { 
      myErrors.Add(e.Error); 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Barcode 
Imports Leadtools.ImageProcessing 
 
Private myErrors As List(Of Exception)  ' List of errors 
Public Sub BarcodeReader_ErrorModeExample() 
   Dim imageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Barcode1.tif") 
 
   ' Create a Barcode engine 
   Dim engine As New BarcodeEngine() 
 
   ' Get the Barcode reader instance 
   Dim reader As BarcodeReader = engine.Reader 
 
   ' Load the image 
   Using codecs As New RasterCodecs() 
      Using image As RasterImage = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1) 
         myErrors = New List(Of Exception)() 
 
         ' Disable the errors 
         reader.ErrorMode = BarcodeReaderErrorMode.IgnoreAll 
 
         ' Subscribe to the ReadSymbology event 
         AddHandler reader.ReadSymbology, AddressOf myReader_ReadSymbology 
         ' Read all barcodes in the image 
         reader.ReadBarcodes(image, LeadRect.Empty, 0, Nothing) 
         RemoveHandler reader.ReadSymbology, AddressOf myReader_ReadSymbology 
 
         ' Show the errors 
         If myErrors.Count > 0 Then 
            Console.WriteLine("Errors encountered:") 
            For Each err As Exception In myErrors 
               Console.WriteLine(err.Message) 
            Next 
         End If 
      End Using 
   End Using 
End Sub 
 
Private Sub myReader_ReadSymbology(ByVal sender As Object, ByVal e As BarcodeReadSymbologyEventArgs) 
   ' If we encounter an error, save it to our list 
   If Not IsNothing(e.Error) Then 
      myErrors.Add(e.Error) 
   End If 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Forms; 
using Leadtools.Barcode; 
using Leadtools.ImageProcessing; 
using Leadtools.Examples; 
 
private List<Exception> myErrors;   // List of errors 
public void BarcodeReader_ErrorModeExample(RasterImage image) 
{ 
   // Create a Barcode engine 
   BarcodeEngine engine = new BarcodeEngine(); 
 
   // Get the Barcode reader instance 
   BarcodeReader reader = engine.Reader; 
 
   // Load the image 
   RasterCodecs codecs = new RasterCodecs(); 
 
   myErrors = new List<Exception>(); 
 
   // Disable the errors 
   reader.ErrorMode = BarcodeReaderErrorMode.IgnoreAll; 
 
   // Subscribe to the ReadSymbology event 
   reader.ReadSymbology += new EventHandler<BarcodeReadSymbologyEventArgs>(myReader_ReadSymbology); 
   // Read all barcodes in the image 
   reader.ReadBarcodes(image, LogicalRectangle.Empty, 0, null); 
   reader.ReadSymbology -= new EventHandler<BarcodeReadSymbologyEventArgs>(myReader_ReadSymbology); 
 
   // Show the errors 
   if (myErrors.Count > 0) 
   { 
      Console.WriteLine("Errors encountered:"); 
      foreach (Exception error in myErrors) 
      { 
         Console.WriteLine(error.Message); 
      } 
   } 
} 
 
private void myReader_ReadSymbology(object sender, BarcodeReadSymbologyEventArgs e) 
{ 
   // If we encounter an error, save it to our list 
   if (e.Error != null) 
   { 
      myErrors.Add(e.Error); 
   } 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Forms 
Imports Leadtools.Barcode 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
 
Private myErrors As List(Of Exception) ' List of errors 
Public Sub BarcodeReader_ErrorModeExample(ByVal image As RasterImage) 
   ' Create a Barcode engine 
   Dim engine As BarcodeEngine = New BarcodeEngine() 
 
   ' Get the Barcode reader instance 
   Dim reader As BarcodeReader = engine.Reader 
 
   ' Load the image 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   myErrors = New List(Of Exception)() 
 
   ' Disable the errors 
   reader.ErrorMode = BarcodeReaderErrorMode.IgnoreAll 
 
   ' Subscribe to the ReadSymbology event 
   AddHandler reader.ReadSymbology, AddressOf myReader_ReadSymbology 
   ' Read all barcodes in the image 
   reader.ReadBarcodes(image, LogicalRectangle.Empty, 0, Nothing) 
   RemoveHandler reader.ReadSymbology, AddressOf myReader_ReadSymbology 
 
   ' Show the errors 
   If myErrors.Count > 0 Then 
      Console.WriteLine("Errors encountered:") 
      For Each [error] As Exception In myErrors 
         Console.WriteLine([error].Message) 
      Next 
   End If 
End Sub 
 
Private Sub myReader_ReadSymbology(ByVal sender As Object, ByVal e As BarcodeReadSymbologyEventArgs) 
   ' If we encounter an error, save it to our list 
   If Not e.Error Is Nothing Then 
      myErrors.Add(e.Error) 
   End If 
End Sub 

Requirements

Target Platforms

Help Version 20.0.2018.1.19
Products | Support | Contact Us | Copyright Notices
© 1991-2018 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Barcode Assembly