반응형
아래의 화면은 사용자가 예외 처리를 하지 않았고 닷넷 플렛폼에서 예외를 처리한 화면이다.
빨간 칸의 글자가 문제가 확인된 곳이고 다시 역추척해서 원인을 찾아내는 화면이다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp10
{
class Program
{
static void Main(string[] args)
{
int Num1;
int Num2;
double Num3;
Console.Write("첫번째로 입력할 숫자 : ");
Num1 = int.Parse(Console.ReadLine());
Console.Write("두번째로 입력할 숫자 : ");
Num2 = int.Parse(Console.ReadLine());
Console.WriteLine(Num1);
Console.WriteLine(Num2);
try
{
Console.Write("첫번째로 입력할 숫자 : ");
Num1 = int.Parse(Console.ReadLine());
Console.Write("두번째로 입력할 숫자 : ");
Num2 = int.Parse(Console.ReadLine());
Console.WriteLine(Num1);
Console.WriteLine(Num2);
Num3 = Num2 / Num1;
}
catch (Exception)
{
Console.WriteLine("먼가가 발생함");
}
//string TempString = Console.ReadLine();
//Num1 = int.Parse(TempString);
}
}
}
반응형
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp10
{
class Program
{
static void Main(string[] args)
{
int Num1;
int Num2;
double Num3;
//문제가 생겼을때 종류시키는게 능사는아니다
while (true)
{
try
{
Console.Write("첫번째 양수를 입력할 숫자 : ");
Num1 = int.Parse(Console.ReadLine());
if (Num1 <0)
{
Exception exception = new Exception(); //exception의 객체를 만들 수 있다 .
throw exception;// 예외를 만들고 예외를 던진다. -> 사용자가 예외를 만들었다.
// 특정 조건일때 만 throw가 작동하도록 써야한다.
}
Console.Write("두번째 양수를 입력할 숫자 : ");
Num2 = int.Parse(Console.ReadLine());
//Console.WriteLine(Num1);
//Console.WriteLine(Num2);
Num3 = Num1 / Num2;
Console.WriteLine("결과값 : " + Num3);
}
catch (FormatException e)
{
Console.WriteLine("문자를 입력함");
Console.WriteLine("=============");
Console.WriteLine(e);
Console.WriteLine("=============");
continue; //제대로 입력할때 까지 계속 돌릴 수 있음
}
catch (DivideByZeroException)
{
Console.WriteLine("0입력 왜함? 디지실?");
continue;
}
catch (Exception)
{
Console.WriteLine("음침하게 음수를 왜 입력함?");
continue;
}
break;
}
}
}
}
throw는 사용자가 마음대로 예외처리를 할 수 있는 명령어이다.
일단 throw는 혼자 마음대로 못쓰고 꼭 조건문과 함께 써야한다.
예외문을 던지게 되면 객체의 타입에 맞는 캐치문에서 해당 예외를 받아 예외 처리를 하게 된다.
반응형
'C#' 카테고리의 다른 글
C# - Visual Studio 2008 PDA 개발 하는 방법 (0) | 2023.05.08 |
---|---|
C# 문법 데이터 형변환과 프로퍼티에 대하여... (0) | 2023.03.27 |
C#- 객체(OOP), CLASS, 구조체, 배열 어떻게 사용할까 (1) | 2023.03.27 |
C# 개발 Grid 데이터 변경 및 입력 시 즉시 DB 반영 코딩 (3) | 2023.03.24 |
C# 개발 Devexpress Grid 버튼 이벤트 추가 ! (0) | 2023.03.23 |
C#-WINFORM으로 계산기 만들기 중요한 예외처리 enum 사용법 알려드립니다. (1) | 2023.03.22 |