C ++ 예외는 연구 노트가 더 던져 발생합니다

C ++ 예외는 연구 노트가 더 던져 발생합니다

머리말

         C ++ 데이터 구조를 학습하는 과정에서 종종 코드 블록 다음 볼 :

template <class T>
T LinkList<T>::Get( int i)
{ //初始化
	Node<T> *p=first->next;
	int j=1;
	while (j!=i) && (p!=NULL)
	{
		p=p->next;
		j++;
	}
	if(p==NULL) throw “位置非法”;
	return p->data; 
}

         어떤 던져를 설명하는 교사는 다음 조건 경우, 예외가 throw됩니다. 그러나 소송 후,하지만 다음과 같은 오류 메시지가 나타납니다
그림 삽입 설명 여기
         그들이 기억하는 텍스트 척했다 호기심의 특정 사용에 던져 그래서.

C ++ 예외 처리

         은 C ++ 언어로, 일반적으로 예를 들어, 예외 처리를 구현하기 위해, 던져 캐치 문을보십시오 :

#include <iostream>
using namespace std;

void ThrowError()
{
	int a;
	cin >> a;
	if (a == 0) throw 1;
	else if (a == 1) throw"字符串:输入的为1";
	else throw 100;
	cout << "throw后面的语句" << endl;
}

int main()
{
	try
	{
		ThrowError();
	}
	catch (int e)
	{
		switch (e)
		{
		case 1:
			cout << "输入的为0" << endl;
			break;
		default:
			cout << "输入的既不是0也不是1" << endl;
			break;
		}
	}
	catch (const char* e)
	{
		cout << e << endl;
	}
	cout << "catch后的语句" << endl;
	return 0;
}

         운영 결과 :
그림 삽입 설명 여기
         다음 코드 블록을 하나의 여러 부분 중 하나는 설명에 의해

1. 시도 {}
         프로그램 실행은 정상 청력에 따라 문을 시도하면 시도 내 문은 내용 try 문이 실행 CIS, 코드의 보호 뒤에 괄호 안에 따르십시오. 은 try 문이 정상적으로 실행되면, 시도 문 뒤의 캐치은 실행되지 않습니다. 프로그램 실행 후 문이 대신 실행 된 후 마지막 catch 문을 수행하려고합니다. 은 try 문이 제대로 실행되지 않은 경우 반대로, 캐치의 문은 실행.

던져 2
         의 기본 구문 던져 :

throw 表达式;//表达式可以是基本数据类型,也可以是类

         예외가 문에 의해 발생합니다. 예를 try 블록에서 실행하여 찾을 수 있습니다, 성공하면 문이 예외가 발생, 더 이상 실행 후 던져하지 않습니다.

3. 캐치
         예외의 실행 중에 try 블록이 발생하는 경우, 다음을 제외하고는 제 "예외 타입"예외 발생 캐치 블록 매칭의 형태로 이동 즉시 슬로우 수행 하고 점프를 수행 마지막 블록 뒤에 캐치가 계속됩니다.
         예외가 잡힌되지 않은 경우, 프로그램이 즉시 종료됩니다, 상황은 서문 나타났다.

추신

         적용 및 동적 메모리를 해제 할 필요가의 얼굴에 던져 관행을 던져 우리가 더 효과적으로 야생 포인터 포인터 매달려 및 기타 문제로 찾을 수 있습니다, 포인터 조작을 포함한다. 따라서 기록합니다.

출시 세 원저 · 원 찬양 한 · 전망 (96)

추천

출처blog.csdn.net/weixin_45817309/article/details/105215427