如何处理AccessViolationException
MODI.Document doc = new MODI.Document();try{ doc.Create(sFileName); try { doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, false, false); sText = doc.Images[0].Layout.Text; } catch (System.AccessViolationException ex) { //MODI seems to get access violations for some reason, but is still able to return the OCR text. sText = doc.Images[0].Layout.Text; } catch (System.Runtime.InteropServices.COMException ex) { //if no text exists, the engine throws an exception. sText = ""; } catch { sText = ""; } if (sText != null) { sText = sText.Trim(); }}finally{ doc.Close(false); //Cleanup routine, this is how we are able to delete files used by MODI. System.Runtime.InteropServices.Marshal.FinalReleaseComObject(doc); doc = null; GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers();}
米脂