﻿
{"id":131,"date":"2012-03-10T20:59:20","date_gmt":"2012-03-10T20:59:20","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=131"},"modified":"2012-05-28T13:04:08","modified_gmt":"2012-05-28T13:04:08","slug":"cta-try-catch-ile-hata-yakalama","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/cta-try-catch-ile-hata-yakalama\/","title":{"rendered":"C# try-catch \u0130le Hata Yakalama"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Bu yaz\u0131mda C#&#8217;ta try-catch ile hata yakalamadan bahsece\u011fim.E\u011fer yazd\u0131\u011f\u0131m\u0131z programda bir hata olu\u015fma ihtimali varsa program\u0131n kullan\u0131c\u0131ya patlak vermemesi i\u00e7in bu yap\u0131 kullan\u0131l\u0131r.try-catch ile hata olabilecek k\u0131sm\u0131 kontrol edebilir,hatalar\u0131n raporunu alabiliriz.\u015eimdi ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyelim.<br \/>\n<!--more--><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ntry\r\n            {\r\n\r\n            }\r\n            catch\r\n            {\r\n\r\n            }\r\n<\/pre>\n<hr \/>\n<p>Genel anlamda yap\u0131s\u0131 yukar\u0131daki gibidir.<br \/>\nE\u011fer yazd\u0131\u011f\u0131m\u0131z programda herhangi bir \u015fekilde hata olu\u015fma ihtimali varsa o komutlar try blo\u011fu i\u00e7ine yaz\u0131l\u0131r.E\u011fer hata olu\u015fursa program\u0131n \u00e7al\u0131\u015fmas\u0131n\u0131 durdurarak, program ak\u0131\u015f\u0131n\u0131 catch blo\u011funa y\u00f6nlendirir.<\/p>\n<p>try da hata olu\u015ftu\u011funda catch blo\u011funa gelirken olu\u015fan hata arka planda bir nesne olarak f\u0131rlat\u0131l\u0131r.Bu nesne de Exception tipinden belirledi\u011fimiz bir referansa yakalan\u0131r.Bu olaya handle denir.\u015eimdi bu konuyla ilgili bir \u00f6rnek verelim.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ntry\r\n            {\r\n\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n\r\n                throw;\r\n            }\r\n<\/pre>\n<hr \/>\n<div class=\"mceTemp mceIEcenter\">\n<dl id=\"attachment_429\">\n<dt><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/03\/hata1.png\"><img loading=\"lazy\" decoding=\"async\" title=\"Hata\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/03\/hata1.png\" alt=\"Hata\" width=\"630\" height=\"212\" \/><\/a><\/dt>\n<dd>Hata 1<\/dd>\n<\/dl>\n<\/div>\n<p>catch kodunun yan\u0131na a\u00e7\u0131lan parantez i\u00e7inde ex ad\u0131nda Exception tipli bir referans tan\u0131mlad\u0131m.Yukarda da bahsetti\u011fim gibi hata nesnesini ex referans\u0131 yakalayacakt\u0131r.<br \/>\n\u00d6ncelikle Exception ile hata nesnesini yakalamay\u0131 g\u00f6stermeden \u00f6nce Visual Studio derleyicisinde bir hata mesaj\u0131n\u0131 inceleyelim.<br \/>\nHata mesaj\u0131n\u0131n ismine dikkatinizi \u00e7ekerim.FormatException tipinde bir hatad\u0131r.Bu hatay\u0131 genellikle textboxtaki de\u011feri int&#8217;e cevirmeye cal\u0131st\u0131\u011f\u0131m\u0131zda al\u0131r\u0131z.int tipine de\u011fi\u015ftirilemeyen karakterler girildi\u011finde bu hatay\u0131 verir.<br \/>\nBu hata gibi bir \u00e7ok yapt\u0131\u011f\u0131m\u0131z hatalardan,ba\u015fka hata tipleri g\u00f6rebiliriz.<br \/>\nFormatException,OverFlowException,DivideByZeroException v.s gibi t\u00fcm hata tiplerinin ortak tipi Exception d\u0131r. b\u00fct\u00fcn bu tiplerdeki hatalar Exception tipi ile yakalanabilirler.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n try\r\n            {\r\n                int a = Convert.ToInt32(textBox1.Text);\r\n            }\r\n            catch (FormatException fr)\r\n            {\r\n         \/\/ burada sadece FormatException t\u00fcr\u00fcnden hatalar yakaln\u0131r.\r\n              MessageBox.Show(fr.Message+&quot;&quot;);\r\n              MessageBox.Show(&quot;L\u00fctfen bo\u015f b\u0131rakmayan\u0131z, say\u0131 yaz\u0131n\u0131z&quot;);\r\n\r\n            }\r\n            catch(OverflowException ov)\r\n            {\r\n       \/\/ burada sadece OverflowException t\u00fcr\u00fcnden hatalar yakaln\u0131r.\r\n                MessageBox.Show(ov + &quot;&quot;);\r\n                MessageBox.Show(&quot;L\u00fctfen \u00e7ok b\u00fcy\u00fck say\u0131 girmeyiniz&quot;);\r\n            }\r\n            catch(DivideByZeroException dv)\r\n            {\r\n     \/\/ burada sadece DivideByZeroException t\u00fcr\u00fcnden hatalar yakaln\u0131r.\r\n                MessageBox.Show(dv + &quot;&quot;);\r\n                MessageBox.Show(&quot;0 a b\u00f6l\u00fcnme tan\u0131ms\u0131zd\u0131r&quot;);\r\n            }\r\n<\/pre>\n<hr \/>\n<div class=\"mceTemp mceIEcenter\">\n<dl id=\"attachment_432\">\n<dt><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/03\/hata2.png\"><img loading=\"lazy\" decoding=\"async\" title=\"Hata\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/03\/hata2.png\" alt=\"Hata\" width=\"481\" height=\"218\" \/><\/a><\/dt>\n<dd>Hata 2<\/dd>\n<\/dl>\n<\/div>\n<p>Bu \u015fekilde kod yazarsak e\u011fer,hata al\u0131nd\u0131\u011f\u0131 anda hatan\u0131n tipi kontrol edilir ve o hatayla ilgili direk mesaj kutusunda bilgi verecektir.\u00d6rnek olarak a\u015fa\u011f\u0131daki \u015fekle bak\u0131n\u0131z.<\/p>\n<p>Yakalad\u0131\u011f\u0131m\u0131z hatay\u0131 &#8220;Hata 2&#8221; deki gibi de\u011filde &#8220;Hata 1&#8221; resmindeki hata a\u00e7\u0131klama sat\u0131r\u0131ndaki gibi g\u00f6stermeyi nas\u0131l yapt\u0131\u011f\u0131m\u0131z\u0131 sorarsan\u0131z e\u011fer a\u015fa\u011f\u0131daki \u00f6rnek i\u015fimizi g\u00f6recektir.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nMessageBox.Show(fr.Message + &quot;&quot;);\r\n<\/pre>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Bu yaz\u0131mda C#&#8217;ta try-catch ile hata yakalamadan bahsece\u011fim.E\u011fer yazd\u0131\u011f\u0131m\u0131z programda bir hata olu\u015fma ihtimali varsa program\u0131n kullan\u0131c\u0131ya patlak vermemesi i\u00e7in bu yap\u0131 kullan\u0131l\u0131r.try-catch ile hata olabilecek k\u0131sm\u0131 kontrol edebilir,hatalar\u0131n raporunu alabiliriz.\u015eimdi ayr\u0131nt\u0131l\u0131 bir \u015fekilde&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[66],"class_list":["post-131","post","type-post","status-publish","format-standard","hentry","category-c-sharp-c","tag-try-catch"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=131"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/131\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}