Yavuzlar
Ana sayfaTelegram
  • Yavuzlar
  • VulnLab
  • CodinLab
  • 📚EĞİTİM
    • PHP
      • XAMPP kurulumu
      • VS Code Kurulum
      • 1.0 PHP Nedir
      • 1.1 Dosya Oluşturma
      • 1.2 Syntax (Yazım Kuralları)
      • 1.3 PHP'de Echo ve Print
      • 1.4 PHP'deki yorumlar
      • 1.5 PHP Değişkenleri
      • 1.6 Operatörler (Operators)
      • 1.7 Veri Türünü Alma
      • 1.8 PHP'de String
      • 1.9 PHP'de Sabitler
      • 2.0 PHP'de If Else Elseif
      • 2.1 Switch Case
      • 2.2 PHP'de Döngüler
      • 2.3 PHP'de Diziler (Arrays)
      • 2.4 PHP'de Süper Global Değişkenleri
      • 2.5 PHP'de Cookie (Çerez) Ve Session (Oturum) Yöntemleri
      • 2.6 Form işlemleri
    • C++
      • 1.0 Temeller
        • 1.1 Dosya Oluşturma
        • 1.2 Syntax (Yazım Kuralları)
        • 1.3 Yorum Satırları
        • 1.4 C++ Değişkenleri
          • 1.4.1 Değişken Türleri
        • 1.5 Operatörler (Operators)
        • 1.6 Namespace
        • 1.7 Kullanıcı Girdisi (User Input)
        • 1.8 C++ Stringleri (C++ Strings)
        • 1.9 Matematik (Math) Fonksiyonları
        • 1.10 Booleans
        • 1.11 If Else
        • 1.12 Switch
        • 1.13 While Döngüsü
          • 1.13.1 Do While Döngüsü
        • 1.14 For Döngüsü
        • 1.15 Break/Continue
        • 1.16 Diziler
        • 1.17 Structures
        • 1.18 Enums
        • 1.19 References
        • 1.20 Pointers
      • 2.0 Fonksiyonlar
      • 3.0 Sınıflar
        • 3.1 OOP
        • 3.2 Sınıflar ve Objeler
        • 3.3 Sınıf Methodları
        • 3.4 Yapıcılar (Constructors)
        • 3.5 Erişim Belirleyicileri (Access Specifiers)
        • 3.6 Kapsülleme (Encapsulation)
        • 3.7 Inheritance
        • 3.8 Polimorfizm (Polymorphism)
        • 3.9 Dosyalar (Files)
        • 3.10 İstisnalar (Exceptions)
        • 3.11 Tarih ve Zaman (Date and Time)
      • 4.0 Veri Yapıları (Data Structures)
        • 4.1 Veri Yapıları ve STL
        • 4.2 Vektörler (Vectors)
        • 4.3 Listeler (Lists)
        • 4.4 Yığınlar (Stacks)
        • 4.5 Kuyruklar (Queues)
        • 4.6 Deque (Çift Uçlu Kuyruk)
        • 4.7 Küme (Set)
        • 4.8 Maps
        • 4.9 Iterator
        • 4.10 Algoritmalar
  • 🛠️ARAÇLAR
    • Aircrack-ng
    • Airgeddon
    • Arjun
    • BeEF
    • Bettercap
    • Docker
    • Gelişmiş Wireshark Kullanımı (Advanced Wireshark Usage)
    • Google Dorks
    • Hping3
    • John the Ripper
    • Metasploit Framework
    • Netcat
    • Nmap
    • OSINT Framework
    • PEASS-ng
    • Sublist3r
    • XSS Scanner
    • Wireshark
    • ZAP
    • HYDRA
  • 🖥️İŞLETİM SİSTEMLERİ
    • Linux101
    • MBR
  • 🔑KRİPTOLOJİ
    • Dijital Sertifika ve İmzalar
    • Sezar Şifrelemesi
    • Steganografi
    • Veri Şifreleme (Data Encryption)
  • 🔏Network
    • Domain Name Server (DNS)
    • Firewall Nedir? Nasıl Çalışır ?
    • Ortadaki Adam Saldırısı (Man In The Middle Attack)
    • OSI Modeli
    • Sanal Özel Ağlar (VPN)
    • World Wide Web (WWW)
  • 🔐PRIVILEGED
    • Docker Escape
  • 📨Protokoller
    • ARP
    • DHCP
    • FTP
    • HTTP/HTTPS
    • SSH
    • TCP/IP
    • UDP
    • Wİ-Fİ Güvenlik Protokolleri (WEP/WPA/WPA2/WPA3)
  • 💻SİBER TEHDİT İSTİHBARATI
    • Gelişmiş Siber Tehdit İstihbaratı Nedir?
  • 🔒WEB GÜVENLİĞİ
    • 403 ByPass
    • API Güvenliği (API Security)
    • Broken Access Control
    • Bulut Güvenliği (Cloud Security)
    • Command Injection
    • Cross Origin Resource Sharing
    • Cross Site Request Forgery (CSRF)
    • Cyber Kill Chain
    • DDoS Saldırıları
    • File Upload Zafiyeti Nedir?
    • HTTP Request Smuggling
    • Insecure Direct Object Reference (IDOR)
    • Incident Response
    • Local File Inclusion (LFI)
    • NoSQL Injection
    • Pentest 101
    • Race Condition
    • Server Side Request Forgery (SSRF)
    • Server Side Template Injection (SSTI)
    • Spring4Shell
    • Two Factor Authentication Bypass
    • XML External Entity Attack (XEE)
  • 🤖YAPAY ZEKA
    • ChatGPT for Hacking
    • Siber Güvenlik ve Yapay Zeka
    • Yapay Zeka ile Sahte Fotoğraf Tespiti
  • 🌐YAZILIM
    • Düzenli İfadeler (Regular Expressions)
    • Elasticsearch Nedir?
    • Front-end Teknolojileri
    • Golang'da Arayüzler (Interfaces)
    • Go'da Concurrency ve Uygulamaları
    • Güvenli Kodlama (Secure Coding)
    • Java Overloading vs Overriding
    • JSON Web Token (JWT)
    • Material-UI
    • NextJS Nedir?
    • ReactJS Kancalar (Hooks)
    • ReactJS Nedir?
    • Redux Toolkit
    • SOLID Yazılım Geliştirme Prensipleri
    • SQL 101
    • UI / UX Nedir?
    • Veri Taşıma Nedir? (Database Migration)
    • Versiyon Kontrol Sistemleri ve GIT
  • 🔷DİĞER
    • Bug Bounty (Hata Ödülü) Nedir?
    • Popüler Yazılımların Kurulumları
      • Ubuntu Server 24.04 LTS Kurulumu
      • Ubuntu için Güncel Docker Engine Kurlumu
    • Güvenlik Operasyonları Merkezi Nedir?
    • Honeypot (Bal Küpü)
    • IoT Güvenliği Nedir?
    • ShellShock Exploit
    • Yük Dengeleyici (Load Balancer) Nedir?
Powered by GitBook
On this page

Was this helpful?

  1. EĞİTİM
  2. C++
  3. 3.0 Sınıflar

3.10 İstisnalar (Exceptions)

C++ programlama dilinde, istisnalar (exceptions), bir program çalışırken beklenmeyen durumlarla başa çıkmanın bir yolunu sunar. İstisnalar, programın akışını kontrol etmeyi ve hataların yönetimini sağlamayı mümkün kılar. Bu, programların daha güvenilir ve hatalardan daha az etkilenir hale gelmesine yardımcı olur.

İstisna Nedir?

İstisna, bir hata durumunu temsil eden bir nesnedir. Bir programda beklenmedik bir durum meydana geldiğinde, bir istisna "fırlatılır" (thrown) ve bu durumun nasıl ele alınacağı belirlenebilir. C++ dilinde istisnalar genellikle try, catchve throw anahtar kelimeleri ile yönetilir.

Temel İstisna Yönetimi

  1. try Bloğu: İçinde bir hata olabileceğini düşündüğünüz kodu sarmalar. Eğer hata meydana gelirse, kontrol catchbloğuna geçer.

  2. catch Bloğu: try bloğundaki kodda bir istisna fırlatıldığında, bu bloğun çalıştırılacağı yerdir. Burada istisnanın türüne göre uygun işlem yapılır.

  3. throw Anahtar Kelimesi: Hata durumunda bir istisna fırlatmak için kullanılır.

Örnek Kullanım

Aşağıda, C++'da istisna yönetiminin nasıl kullanılacağını gösteren basit bir örnek bulunmaktadır.

#include <iostream>
#include <stdexcept> // std::runtime_error için
using namespace std;

double bolme(double a, double b) {
    if (b == 0) {
        throw runtime_error("Bölme hatası: Bir sayı sıfıra bölünemez."); // İstisna fırlatma
    }
    return a / b;
}

int main() {
    double sayi1, sayi2;

    cout << "Bir sayı girin: ";
    cin >> sayi1;
    cout << "Bölmek için bir sayı girin: ";
    cin >> sayi2;

    try {
        double sonuc = bolme(sayi1, sayi2); // try bloğunda işlem
        cout << "Sonuç: " << sonuc << endl;
    } catch (const runtime_error& e) { // catch bloğunda hata yönetimi
        cout << "Hata: " << e.what() << endl; // Hata mesajını yazdır
    }

    return 0;
}

Önemli Noktalar

  • İstisna Türleri: C++'da birçok yerleşik istisna türü vardır (örneğin, std::runtime_error, std::out_of_range, vb.). Kendi istisna türlerinizi de tanımlayabilirsiniz.

  • Hata Yönetimi: try-catch yapısı, hata meydana geldiğinde programın çökmesini önler ve hataların yönetilmesini sağlar.

  • Performans: İstisnaların kullanımı, kodun daha karmaşık hale gelmesine neden olabilir, bu nedenle dikkatli kullanılmalıdır.

Sonuç

C++ dilinde istisnalar, programcıların hataları yönetmesine ve daha sağlam kod yazmasına olanak tanır. İstisna yönetimi, yazılım geliştirme sürecinde önemli bir yer tutar ve programların daha güvenilir hale gelmesine yardımcı olur.

Previous3.9 Dosyalar (Files)Next3.11 Tarih ve Zaman (Date and Time)

Last updated 4 months ago

Was this helpful?

📚