C# rukuje greškama sa iznimkama koje se hvataju pomoću try/catch/finally. Pravilno rukovanje iznimkama znači hvatanje specifičnih tipova iznimki, čišćenje resursa (često sa using), stvaranje smislenih prilagođenih iznimki, i ne prešućivanje grešaka tiho.
