The TwainException class defines a Code property that you can examine to determine what caused the error.
Default messages are implemented for each Code, you can however modify any message through the GetCodeMessage and SetCodeMessage methods.
using Leadtools;using Leadtools.Twain;public void _twainSession_AcquirePage(object sender, TwainAcquirePageEventArgs e){Application.DoEvents();if (e.Image != null)e.Image.Dispose();e.Cancel = false;}public void TwainExceptionExample(IntPtr parent){TwainSession session = null;try{// initialize a new TWAIN sessionsession = new TwainSession();session.Startup(parent, "manufacturer", "productFamily", "version", "application", TwainStartupFlags.None);session.AcquirePage += new EventHandler<TwainAcquirePageEventArgs>(_twainSession_AcquirePage);// acquire a page, if paper jam, allow the user to retrybool done = false;while (!done){try{DialogResult res = session.Acquire(TwainUserInterfaceFlags.Modal | TwainUserInterfaceFlags.Show);MessageBox.Show("Success");done = true;}catch (TwainException ex){if (ex.Code == TwainExceptionCode.PaperJam){if (MessageBox.Show("Paper jam. Fix and retry?", "TWAIN", MessageBoxButtons.YesNo) == DialogResult.No)done = true;}else{// other error, propogatethrow ex;}}}}catch (TwainException ex){MessageBox.Show(string.Format("Twain error:{0}Code: {1}{0}Message: {2}", Environment.NewLine, ex.Code, ex.Message));}catch (Exception ex){MessageBox.Show(string.Format("Other error: Message:{0}", ex.Message));}finally{if (session != null)session.Shutdown();}}