프로그래밍/의문
C# Excel Application이 예외 발생 시 종료되지 않는 현상
제페
2019. 3. 31. 17:05
반응형
예외를 잡아주지 않으면 Excel이 꺼지지 않고 계속 떠있다.
다음은 예외를 의도적으로 발생시키고 그것을 finally로 종료한 코드이다.
using System;
using Excel = Microsoft.Office.Interop.Excel;
class Program
{
static void Main(string[] args)
{
Excel.Application app = new Excel.Application();
try
{
app.DisplayAlerts = false;
throw new ArgumentException("exception");
}
finally
{
app.Workbooks.Close();
app.Quit();
}
}
}
프로세스 상태
finally 내부 코드가 실행되었는데도 백그라운드 프로세스에 Excel이 계속 떠있다.
다음은 Excel Application이 꺼지지 않는 문제를 수정한 코드이다.
이전 코드에서 catch문만 추가했다.
using System;
using Excel = Microsoft.Office.Interop.Excel;
class Program
{
static void Main(string[] args)
{
Excel.Application app = new Excel.Application();
try
{
app.DisplayAlerts = false;
throw new ArgumentException("exception");
}
catch(Exception)
{
}
finally
{
app.Workbooks.Close();
app.Quit();
}
}
}
프로세스 상태
결론: Catch하자
반응형