C++ में noexcept का वास्तव में कब और क्यों उपयोग करना चाहिए?
नमस्ते साथियों! मैं लगभग एक साल से C++ में लिख रहा हूँ, C++11/14 का सक्रिय रूप से उपयोग करता हूँ। मैं कोड और लाइब्रेरीज़ में लगातार `noexcept` कीवर्ड देखता हूँ, लेकिन मुझे पूरी तरह से समझ नहीं आता कि इसे वास्तव में कब लागू करना चाहिए।
उदाहरण के लिए, मैं फ़ाइलों के साथ काम करने के लिए एक सरल wrapper class लिख रहा हूँ। मैं आमतौर पर methods को इस प्रकार परिभाषित करता हूँ:
```cpp
class FileWrapper {
public:
FileWrapper(const std::string& filename) : file_(fopen(filename.c_str(), "r")) {
if (!file_) throw std::runtime_error("Cannot open file");
}
~FileWrapper() {
if (file_) fclose(file_);
}
bool is_open() const { return file_ != nullptr; }
std::string read_line() {
// ... पढ़ने में त्रुटि होने पर exception throw कर सकता है
}
void close() {
if (file_) { fclose(file_); fi