A implementação cliente deste método deve garantir que todas as exceções lançadas dentro do método sejam capturadas e tratadas, e que nenhuma exceção seja propagada para fora do método. A propagação de uma exceção para fora do método pode levar a resultados imprevisíveis (como o encerramento do programa).
// Exemplo de implementação de uma fonte de imagens personalizada que mantém uma fila de arquivos de imagempublic class ImageSourceCallback : FREngine.IImageSource{ public ImageSourceCallback( string imageFilesDirectory ) { imageFiles = ImageSourceHelper.LoadFilesNames( imageFilesDirectory ); nextFileIndex = 0; } public bool IsEmpty() { return nextFileIndex >= imageFiles.Length; } public FREngine.IFileAdapter GetNextImageFile() { if( !IsEmpty() ) { return new FileAdapterCallback( imageFiles[nextFileIndex++] ); } return null; } public FREngine.IImageDocument GetNextImageDocument() { ... } private string[] imageFiles; private int nextFileIndex;}public class FileAdapterCallback : FREngine.IFileAdapter{ ...}public class ImageSourceHelper{ ...}