[C#] 기본 사항 - 프로그램 디버깅 및 예외 처리 메커니즘
4569 단어 C#
1. 개념
프로그램 디버깅은 프로그램에서 오류를 찾는 과정이고 개발 과정에서 프로그램 디버깅은 코드를 검사하고 정상적으로 실행할 수 있는지 검증하는 효과적인 방법이다.프로그램을 작성할 때 일부 오류가 발생하는 것을 피하기 어렵다. 이러한 오류를 해결하기 위해서는 프로그래머가 응용 프로그램에 대해 디버깅을 하고 오류의 근원을 찾아내야 한다.
2. 디버깅의 사고방식
1) 브레이크 작업: 브레이크 삽입 - 디버깅 스위치 브레이크 - 브레이크 삭제
2) 실행 시작: 디버깅, 디버깅 시작 - 선택한 줄을 마우스 오른쪽 버튼으로 클릭하여 커서로 실행
3) 운영 중단:
4) 실행 중지
5) 단계별 수행 및 절차별 수행
한 걸음 한 걸음 실행, 디버거는 매번 한 줄 코드만 실행하고 한 걸음 한 걸음 실행은 주로 문장별, 과정별, 이 3에서 튀어나오는 명령을 통해 이루어진다.문장 하나하나와 과정 하나하나의 주요 차이점은 한 줄이 함수 호출을 포함할 때 문장 하나하나가 호출 자체만 실행하고 함수 내의 첫 번째 코드 줄에서 멈추는 것이다.과정 별로 전체 함수 를 집행 한 후 함수 외 의 첫 줄 에서 정지 했 다.
단축키: F11: 명령별 작업 F10: 절차별 작업shift+F10: 점프 작업 수행
디버깅 과정에서 단전 테스트를 잘 이용해야 한다. 특히 순환 문장에서 단점 테스트를 사용하는 효율이 비교적 높다.
2. 이상 처리 문장
C# 프로그램에서 예외 처리 문을 사용하여 예외를 처리할 수 있습니다.통상적으로 사용하는 이상 처리 문장은throw문장,try.....catch 문장과try......catch.....finally 문구.이 문장을 통해 이상이 발생할 수 있는 프로그램 코드를 감시할 수 있다.
1. throw 문구로 이상 탈출
throw 문장은 주동적으로 이상을 일으키는 데 사용된다. 즉, 특정한 상황에서 자동으로 이상을 던진다.throw 문의 기본 형식은 다음과 같습니다.
throw ExObject
ExObject: 던질 이상 대상, 이 이상 대상은 Sytem에서 파생됩니다.Exception 클래스의 객체사례:
namespace 01
{
public class StudentName
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(" : " +MyInt(4, 2));
Console.WriteLine(" : " + MyInt(4, 0));
Console.ReadKey();
}
//
public static int MyInt(int a, int b)
{
int num;
if (b == 0)
{
throw new DivideByZeroException(); // DivideByZeroException
return 0;
}
else
{
num = a / b;
return num;
}
}
}
}
}
2. try 사용...catch 문장 포착 이상try.....catch 문장은try 뒤에 있는 괄호 {}에 이상이 발생할 수 있는 프로그램 코드를 설치하고 이 프로그램 코드를 감시할 수 있으며,catch 뒤에 있는 괄호 {}에는 오류가 발생한 프로그램 코드를 처리하여 프로그램의 이상을 처리할 수 있습니다.try.....catch 문의 기본 형식은 다음과 같습니다.
try
{
;
}
catch( , )
{
;
}
참고:
1)try....catch 문장은 여러 개의catch 문장을 포함할 수 있지만, 프로그램은 하나의catch 문장에 있는 정보만 실행하고, 다른catch 문장은 무시됩니다.
2) catch 문에서 예외 클래스 이름은 System이어야 합니다.Exception 또는 System.파생된 Exception의 유형입니다.catch 문장에서 이상 클래스 이름과 이상 변수 이름을 지정하면 주어진 이름과 유형을 가진 이상 변수를 설명하는 것과 같습니다. 이 이상 변수는 현재 처리 중인 이상을 표시합니다.사례:
public static void ceshi()
{
static void Main(string[] args)
{
ceshi();
Console.WriteLine(" ");
try
{
int score = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("int try");
}
catch
{
Console.WriteLine("in catch");
}
Console.WriteLine("over");
Console.ReadKey();
}
try
{
object obj = null;
int N = (int)obj; // , obj int
}
catch(Exception ex)
{
Console.WriteLine(" : "+ex);
}
}
3. try 사용...catch.....finally 문장 포착 이상finally 문장과try를...catch 문장을 결합하면try를 형성할 수 있다.catch......finally 문구.finally 문장은 블록으로 존재하며 모든try에 놓여 있습니다...catch 문장의 맨 뒤에 프로그램이 실행되고 마지막으로finally 문장 블록으로 바뀌어 코드를 실행합니다.
try
{
;
}
catch( , )
{
;
}
.....
finally
{
;
}
주의: 만약 프로그램에 어떤 상황에서도 실행할 코드가 있다면finally 문장에 넣을 수 있습니다.
사례 1:
#region
int str = 123; // int
object obj = str; //
try
{
int i = (int)obj; // obj int ——
}
catch(Exception ex)
{
Console.WriteLine(ex.Message); // :“ ”
}
finally
{
Console.WriteLine(" ....."); // finally
}
#endregion
출력: 프로그램 실행 완료...사례 2:
string str = "hello"; // string
object obj = str; //
try
{
int i = (int)obj; // obj string ——
}
catch(Exception ex)
{
Console.WriteLine(ex.Message); // :
}
finally
{
Console.WriteLine(" ....."); // finally
}
#endregion
출력: 지정된 변환이 잘못되었습니다.프로그램 실행 완료...
종합 운용: 데이터베이스 연결 과정 중 이상 포착 사용
#region
SqlConnection sqlcon = new SqlConnection("Data Scource = (local); Database = master; uid = sa; pwd = 123;");
try
{
sqlcon.Open(); //
Console.WriteLine(" ");
}
catch (SqlException ex)
{
Console.WriteLine(ex.Message);
}
#endregion
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.