2012-06-21 5 views
0

Я имею функцию следующим образом:Ловля исключения и записывать их в Excel лист

public int CreateMyTask() 
{ 
    Console.WriteLine("Invoking CreateTask method"); 
    Console.WriteLine("-----------------------------------"); 
    m_taskID = taskClient.CreateTask(m_tInstance); 
    Console.WriteLine("Task create successfully:ID=" + m_taskID.ToString()); 
    Console.WriteLine("-----------------------------------"); 
    return m_taskID; 
} 

Что мне нужно сделать, это: -

  1. Я должен проверить функцию, имеет ли исключение произошло. Любое исключение может происходить в основном. Мы не беспокоимся о том, что произошло. Нам просто нужно выяснить, произошло ли исключение ИЛИ. Пусть это исключение - это что угодно.

  2. Если действительно произошло исключение, я должен записать слово «FAIL» в строке 2, ячейке 10 моего листа excel (D: \ excel.xls) и добавить текст, относящийся к исключению типа «Исключение Nullreference произошел "или" деление на нулевое исключение "или любое исключение, которое произошло. Точный текст исключения должен быть скопирован в строку 2, ячейка 11

  3. Если никакого исключения не произошло, тогда я должен записать слово «PASS» в строке 2, ячейке 10 моего листа excel.

Может кто-нибудь помочь мне начать с этого? Является совершенно новым для C#. Может быть, с некоторыми входами.

+1

первый google и попробуйте что-нибудь, а затем придите с проблемой. –

+1

Да, пожалуйста, google "C# excel interop", который поможет вам начать работу. Также используйте «catch (Exception ex)», чтобы поймать все исключения. – Polyfun

+0

Когда возникает вопрос, который сразу приходит на ум, может ли это работать более одного раза, и если да, то что происходит, когда у вас есть несколько исключений? Это, очевидно, зависит от вашего контекста, но вы считаете, что храните исключения в базе данных и извлекаете их там с помощью excel (довольно простой процесс, не требующий реального кодирования). – Chris

ответ

0
public int CreateMyTask() 
{ 
     try 
     { 
      Console.WriteLine("Invoking CreateTask method"); 
      Console.WriteLine("-----------------------------------"); 
      m_taskID = taskClient.CreateTask(m_tInstance); 
      Console.WriteLine("Task create successfully:ID=" + m_taskID.ToString()); 
      Console.WriteLine("-----------------------------------"); 
      WriteResultInExcel(false, ""); 
      return m_taskID; 
     } 
     catch(Exception ex) 
     { 
      WriteResultInExcel(true, ex.Message); 
     } 
} 


private void WriteResultInExcel(bool isExceptionalData, string message) 
{ 
     Excel.ApplicationClass excelApp = new ApplicationClass(); 
     Workbook workbook = excelApp.Workbooks.Open("D:\\excel.xls", 0, false, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 
     Worksheet worksheet = (Worksheet)workbook.Sheets.get_Item(1); 
     if(isExceptionalData) 
     { 
      ((Range)worksheet.Cells["2", "J"]).Value2 = "FAIL"; 
      ((Range)worksheet.Cells["2", "K"]).Value2 = message; 
     } 
     else 
     { 
      ((Range)worksheet.Cells["2", "J"]).Value2 = "PASS"; 
     } 
     workbook.Save(); 
     workbook.Close(0, 0, 0); 
     excelApp.Quit(); 
} 

Обязательно проверьте наличие файла «D: \ excel.xls», а также добавить ссылку на «Microsoft.Office.Interop.Excel».

Не пропустите, чтобы добавить это к вашей директивы раздела:

с использованием Microsoft.Office.Interop.Excel; с использованием Excel = Microsoft.Office.Interop.Excel;

+0

привет, я как и сказал ... он отлично работает .. но есть небольшая проблема .. в файле d excel, я вижу только текст «Исключение « Я хочу, чтобы полный текст описания был там ... «Nullreferenceexception найдено:« Я что-то не хватает ??? – user1463269

+0

Можете ли вы поместить точку отладки в код функции «WriteResultInExcel» и сообщить мне, что вы цените в строке «сообщение»? –

1

Ваш вопрос в два раза. Во-первых, оберните блок catch try вокруг функциональности этого метода. Независимо от того, выполняется ли это в рамках метода или вокруг любых вызовов метода CreateMyTask, зависит от более широкой структуры и использования вашего кода. Для ознакомления с использованием try catch обратитесь к этому: http://www.dotnetperls.com/catch - В этой ссылке вы замените литературу на метод, который будет записываться на ваш лист Excel. Мне нужно больше контекста на том, как вы планируете писать в свою электронную таблицу, но, как было предложено, способы google для чтения и записи из файла excel.

+0

Это будет полезно для меня, если вы можете мне помочь с кодом для вышеуказанной функции. Просто поймайте любое исключение, если это пропуск, напишите d word PASS на лист excel в указанной позиции. если это сбой, напишите d word FAIL на лист excel и напишите описание исключения. – user1463269

+2

Мне тоже было бы полезно, если бы я мог заставить кого-то написать свой код, к сожалению, это не вариант. – stuartd

+0

@ user1463269 - он не работает так. Я не ложка, кормящая вас кодом. Все, что вам нужно сделать, это две вещи, которые я вам рекомендовал, и у вас есть решение. Не говоря уже о том, что вы узнаете об этом для будущих проектов. –

Смежные вопросы