C#/문법 정리
C# - 나눔 예외처리 (DivideByZeroExeption)
Khadra
2024. 6. 24. 08:16
C#에서는 실행 중에 나오는 에러를 예외라고 한다.
산술연산에서 나올 수 있는 예외는 0으로 2가지로 분류된다.
- 나눔 예외처리 (DivideByZeroExeption)
- 오버플로우 예외처리 (Overflow Exception)
나눔 예외처리 (DivideByZeroExeption)
예제 코드
using System;
using static System.Console;//Console단어를 생략(코드길이줄어둠)
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int x = 10, y = 0;
// 10.0/y는 실수를 0으로 나누기때문에
// 예외가 아닌 ∞를 출력한다.
WriteLine(10.0 / y);
// x/y를 할 때 y값이 0이기 때문에 0으로
// 나눔 예외가 발생한다.
WriteLine(x / y);
}
}
}
결과
∞
Unhandled exception. System.DivideByZeroException: Attempted to divide by zero.
위와 같이 예외 처리하기 위해 try-catch 문을 사용한다.
- 프로그램 중에 나누기 계산을 할때는 위의 예제와 같이 y가 어떤 값인지 모르기 때문에
이런 예외의 가능성이 있다. - 만약 실행 중에 y가 0이라면 "처리되지 않은 예외"를 출력하고 종료되어 버린다.
예제 코드
using System;
using static System.Console;//Console단어를 생략(코드길이줄어둠)
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int x = 10, y = 0;
try
{
//나누기 연산을 하는 13번줄에
//try~catch 문의 try문 안에 넣는다.
WriteLine(x / y);
}
catch (Exception e) //catch문을 예외가 발생하면 실행된다.
{ //여기서는 Exception 클래스의massage 속성을 출력하게 한다.
//"0으로 나누려 했습니다."라고 출력한다.
//try~catch문은 예외 처리를 하고 다음 문장으로 진행한다.
WriteLine(e.Message);
}
}
}
}
결과
Attempted to divide by zero.