C++ में noexcept का वास्तव में कब और क्यों उपयोग करना चाहिए?
नमस्ते सहयोगियों! मैं लगभग एक वर्ष से C++ में लिख रहा हूँ, C++11/14 का सक्रिय रूप से उपयोग करता हूँ। मैं कोड और लाइब्रेरीज़ में लगातार `noexcept` कीवर्ड देखता हूँ, लेकिन मुझे पूरी तरह से समझ नहीं आता कि वास्तव में इसका उपयोग कब करना चाहिए।
उदाहरण के लिए, मैं फ़ाइलों के साथ काम करने के लिए एक सरल wrapper क्लास लिख रहा हूँ। मैं आमतौर पर इस प्रकार 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