C++ 예외 캡슐화는 코드의 가독성과 유지 관리성을 향상시키고 오류 정보를 처리 논리에서 분리할 수 있습니다. 오류 정보는 std::Exception에서 상속되는 예외 클래스를 정의하여 캡슐화할 수 있습니다. 예외를 발생시키려면 throw를 사용하고 예외를 포착하려면 try-catch를 사용합니다. 실제 경우 파일을 읽는 함수는 예외 클래스를 사용하여 파일 열기 실패 오류를 캡슐화할 수 있으며, 이 함수를 호출하면 예외가 포착되고 오류 메시지가 인쇄될 수 있습니다.
C++ 함수의 예외 캡슐화 예외 처리
C++ 함수에서 예외 캡슐화는 코드의 가독성과 유지 관리성을 향상시킬 수 있습니다. 예외를 캡슐화하면 처리 논리에서 오류 정보를 분리하여 더 명확하고 이해하기 쉬운 코드를 만들 수 있습니다.
예외 클래스 정의
먼저 오류 정보를 캡슐화하기 위한 예외 클래스를 정의해야 합니다. 이 클래스는 표준 라이브러리 예외 클래스 std::Exception
에서 상속되어야 합니다. 예: std::exception
。例如:
class MyException : public std::exception { public: MyException(const std::string& message) : std::exception(message) {} };
这个异常类定义了一个构造函数,它接受一个字符串参数并将其作为异常消息。
函数中的异常抛出
在函数中抛出一个异常很简单。可以使用 throw
关键字后跟异常对象:
void myFunction() { if (someCondition) { throw MyException("发生了一些错误!"); } }
函数中的异常捕捉
要捕捉异常,可以使用 try
和 catch
块:
int main() { try { myFunction(); } catch (MyException& e) { std::cout << "错误:" << e.what() << std::endl; } }
实战案例
考虑一个读取文件并计算文件总行数的函数:
int countLines(const std::string& filepath) { std::ifstream ifs(filepath); if (!ifs.is_open()) { throw MyException("无法打开文件!"); } int count = 0; std::string line; while (std::getline(ifs, line)) { ++count; } return count; }
在这个函数中,我们使用 MyException
int main() { try { int lineCount = countLines("inputFile.txt"); std::cout << "文件共 " << lineCount << " 行" << std::endl; } catch (MyException& e) { std::cout << "错误:" << e.what() << std::endl; } }
throw
키워드 뒤에 예외 개체를 사용할 수 있습니다. 🎜rrreee🎜🎜함수에서 예외 잡기 🎜🎜🎜예외를 잡으려면 try
및 catch를 사용할 수 있습니다.
블록: 🎜rrreee🎜🎜실용 사례🎜🎜🎜파일을 읽고 파일의 총 줄 수를 계산하는 함수를 생각해 보세요. 🎜rrreee🎜이 함수에서는 MyException
을 사용합니다. > 파일 열기 실패 오류 메시지를 캡슐화하는 클래스입니다. 이 함수를 호출하면 예외를 포착하고 오류 메시지를 인쇄할 수 있습니다: 🎜rrreee위 내용은 C++ 함수 예외 처리에서 예외를 캡슐화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!