Tag: exception

MS Excel和COM托pipe的C#2委托中exception的行为

大家早, 这里的语言理论问题的位…我已经在网上发现了一些参考文献,提示C#中的exception处理和委托在某些情况下有一些不同的行为,但是我找不到关于这个问题的具体文档。 我们最近有一些大的问题,例如在一个Microsoft Excel插件的委托内,导致MSVC运行时崩溃。 删除代表解决了这个,但我现在好奇,找出血淋淋的细节。 作为核心代码的简要例子: Delegate del; // initialized elsewhere try { del.DynamicInvoke(); } catch(Exception e) { /* Parsing of exception to generate user-friendly message here */ } 上面的构造允许一个集中的error handlingforms,从纯粹的代码angular度来看是简洁明了的。 每个公开公开的函数都被声明为一个委托并通过上面的片段执行。 在一个简单的控制台应用程序中,从委托抛出一个exception或只是一个普通的意外错误(例如,“意外地”调用空指针上的ToString())按预期方式工作,并按照需要处理错误。 抛出MS Excel,你会遇到硬崩溃。 单步执行代码会显示错误发生的位置,但是没有任何堆栈展开的情况发生在一个破坏的大火球中的任何事情发生之前。 我的假设是,承载.NET运行时(以及我们的代码)的COM正在做一些与正常的.NET代码执行不同的事情。 这终止了终点,而Excel并不知道这一点,而这又反过来试图通过COM来访问终点,只是发现它已经消失了,而Excel却不知所措。 这只会发生在Excel + COM +代表的组合中,但是我并不真诚地知道哪一个在这个行为中更有影响力……任何想法?

与Err.Raise的反思错误

信息:感谢加里·麦吉尔,我可以改善我的问题的源代码。 在我目前的项目中,我有一个处理所有错误的子。 以下情况应该发生: 开始小组 发电子邮件 显示默认的Debug-Error窗口(点击“Debug”时指向原来的错误行) 这里的要点是找出错误发生在哪一行 。 Private Sub Foo() On Error GoTo ErrorHandling a = 7 / 0 Exit Sub ErrorHandling: errorNumber = Err.Number errorSource = Err.Source errorDescription = Err.Description errorHelpFile = Err.HelpFile errorHelpContext = Err.HelpContext On Error GoTo 0 Call HandleError(errorNumber, errorSource, errorDescription, errorHelpFile, errorHelpContext) End Sub Public Sub HandleError(errorNumber As Integer, […]

导出为ex​​cel的例外

使用c#.net我从我的表单中的标签导出数据为Excel。 代码如下: Excel.Font font = range.Font; font.Color =Color.Black; 在使用这段代码的时候,我收到了一个exception “使用System.Color参数或返回types的方法不能通过IDispatch调用”。 请帮我解决这个问题。

主线程中使用apache poi读取xlsx的NoSuchMethodError

我的代码是 […] import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFRow; public class ExcelRead { public static void main( String [] args ) { try { File excel = new File("Book1.xlsx"); FileInputStream fis = new FileInputStream(excel); XSSFWorkbook book = new XSSFWorkbook(fis); XSSFSheet sheet = book.getSheetAt(0); Iterator rows = […]

c#错误:将Excel文件转换为.CSV文件时出现“找不到可安装的ISAM”

我正在处理一个能够将Excel文件转换为.CSV文件的项目 ,我认为在我的C#代码中有一些问题正在生成,并且错误消息找不到可安装的ISAM ,请帮我解决我的问题。 码: if (dlgOne.FileName.EndsWith(".xlsx")) { StrConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 12.0;\""; } if (dlgTwo.FileName.EndsWith(".xls")) { StrConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 1.0;HDR=Yes;IMEX=1\""; } OleDbConnection conn = null; conn = new OleDbConnection(StrConn); conn.Open(); <———— throw exception 在debugging模式下,应用程序抛出一个exception (line: conn.Open(); )我search了互联网,我发现我必须把Data Source放在一个cotes之间,但在我的情况下不起作用。

在.NET excel插件(XLL)中捕获未处理的exception?

我正在尝试为.NET excel插件附加一个未处理的exception处理程序。 问题是从不调用exception处理程序。 AppDomain.CurrentDomain.UnhandledException不起作用 – 永远不会触发事件。 Application.Current.DispatcherUnhandledException不能用于在Excel插件代码中的应用程序为null。 那么你如何连线未处理的exception处理程序呢?

C#/ ASP.NET Oledb – MS Excel读取“未指定的错误”

我们有一个运行在Windows Server 2003企业版的IIS 6上的C#/ ASP.NET(2.0)应用程序。 此应用程序使用OleDb读取Excel文件,但有些情况下,我们收到应用程序中抛出的“未指定的错误”exception。 该文件在打开之前通过我们的file upload代码存储在临时目录中。 由于我们在IIS中启用了匿名访问,并且因为我们也在web.config中使用模拟,所以文件夹C:\ Windows \ Temp \具有Internet访客用户帐户(IUSR_ [MachineName])的适当权限,修改和删除那里的文件。 OleDb连接string: Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\ Windows \ Temp \ tmp123.tmp.xls; Extended Properties =“Excel 8.0; HDR = Yes; IMEX = 1;” [上面的“数据源”属性会改变每个文件。] exception的堆栈跟踪是: System.Exception:FileParsingFailed —> System.Data.OleDb.OleDbException: 未指定的错误在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection连接) System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions选项, 对象poolGroupProviderInfo,DbConnectionPool池,DbConnection拥有对象)在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(的DbConnection owningConnection,DbConnectionPoolGroup poolGroup) System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection 拥有连接) System.Data.ProviderBase.DbConnectionClosed.OpenConnection(的DbConnection outerConnection,DbConnectionFactory […]

Excel互操作MissingMethodException

在我的C#程序中,我正在使用Excel 2010 interop程序集。 有了这个我正在读写数据,以Excel文件。 并在开发框(包含Office 2010)上执行得很好。 在客户端计算机上,即使他们具有Office 2010和Office PIA,也会看到下面的exception情况,并引发WriteToExcel()方法调用。 Unhandled Exception: System.MissingMethodException: Method not found: 'System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.GUID)'. 以下是我的代码片段。 [STAThread] static void Main(string[] args){ // read user input, process and write data to Excel WriteToExcel(); } [STAThread] static void WriteToExcel(){ Application xlsApplication = new Application(); Workbook xlsWorkbook = xlsApplication.Workbooks.Open(excelFilePath); // write data to excel // close […]

无法对空引用exception执行运行时绑定

我试图通过查找第一列(由date组成)和标题行中的第一个空单元格来使用C#查找Excel表格的维度。 这里是我现在使用的代码: public static void findingTableBounds() { string dateCol = ""; ArrayList dateColumn = new ArrayList(); ArrayList numberOfColumns = new ArrayList(); for (int column = 1; column < currentRow; column++) { dateCol = ((Excel.Range)workSheet.Cells[currentRow, 1]).Value2.ToString(); if (dateCol != "") { dateColumn.Add(dateCol); currentRow++; totalRow++; Console.WriteLine("Total Row: {0}", totalRow); } else { Console.WriteLine("Total Row: {0}", totalRow); currentRow […]

Excel错误HRESULT:0x800A03EC尝试获取单元格名称的范围

我正在使用Window Service项目。 必须按顺序将数据写入Excel文件中。 但有些时候,有时候,服务抛出exception“exception从HRESULT:0x800A03EC”,而它试图获取单元格名称的范围。 我已经把打开excel表单的代码,并在这里获取单元格。 OS:窗口服务器2003 Office: Microsoft Office 2003 sp2 1:打开Excel表格 m_WorkBook = m_WorkBooks.Open(this.FilePath, 0, false, 5, "", "", true, Excels.XlPlatform.xlWindows, ";", true, false, 0, true, 0, 0); 2:让细胞写作 protected object m_MissingValue = System.Reflection.Missing.Value; Range range = m_WorkSheet.get_Range(cell.CellName, m_MissingValue); // error from this method, and cell name is string.