{"id":8986,"date":"2011-07-03T21:25:00","date_gmt":"2011-07-03T19:25:00","guid":{"rendered":"https:\/\/fatihboy.com\/post\/asenkron-programlamada-hata-yonetimi"},"modified":"2021-06-25T09:34:58","modified_gmt":"2021-06-25T06:34:58","slug":"asenkron-programlamada-hata-yonetimi","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/asenkron-programlamada-hata-yonetimi\/","title":{"rendered":"Asenkron Programlamada Hata Y\u00f6netimi"},"content":{"rendered":"<p>&nbsp;&nbsp;&nbsp;&nbsp; Asenkron programlaman\u0131n detaylar\u0131na indi\u011fimiz <a href=\"\/en\/?tag=async\">makale serisine<\/a> ba\u015flarken sizlere async ve await sayesinde <em>neredeyse<\/em> ayn\u0131&nbsp; senkron programlar gibi asenkron programlama yapabiliyor oldu\u011fumuzdan bahsetmi\u015ftim. Bu benzerli\u011fe belki tek\/en \u00f6nemli istisna ise hata y\u00f6netimidir. Bu makalemde, asenkron programlama ile u\u011fra\u015facaksan\u0131z kesinlikle bilmeniz ve dikkat etmeniz gereken, hata y\u00f6netiminin detaylar\u0131n\u0131 sizinle payla\u015f\u0131yor olaca\u011f\u0131m.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Asenkron programlamadaki hata y\u00f6netiminin senkron programlamadan hangi noktalarda farkl\u0131 oldu\u011fu, nelere dikkat edilmesi gerekti\u011fini bilmek i\u00e7in \u00f6ncelikle hata y\u00f6netiminin senkron programlamada nas\u0131l oldu\u011funa bir g\u00f6z atal\u0131m.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Yaz\u0131l\u0131mlarda olu\u015fan hatalar, her zaman olmasa da \u00e7o\u011funlukla, uygulaman\u0131n tutars\u0131z bir durumda kalmas\u0131na neden olmaktad\u0131r. Haf\u0131zada a\u00e7\u0131lan kaynaklar ya da olu\u015fturulan di\u011fer ge\u00e7ici kaynaklar iade edilmemi\u015f, dosyalar \u00fczerinde yap\u0131lan de\u011fi\u015fiklikler yar\u0131m kalm\u0131\u015f, hatta olu\u015fturulan lock\u2019lar zamans\u0131z olarak b\u0131rak\u0131lm\u0131\u015f olabilir. Dolay\u0131s\u0131yla da uygulaman\u0131zda yakalanmam\u0131\u015f bir hata olu\u015fmas\u0131 sonras\u0131nda uygulaman\u0131z\u0131n tam olarak hangi durumda kald\u0131\u011f\u0131 ya da ne kadar tutarl\u0131 bir durumda oldu\u011fu kesin olarak bilinemeyecektir. Her ne kadar t\u00fcm hatalar uygulaman\u0131z\u0131 biraz \u00f6nce bahsetti\u011fim bu tutars\u0131z duruma sokmayacak olsa da \u015funu kabul etmeliyiz ki CLR gibi bir altyap\u0131 geli\u015ftirirken, geli\u015ftiricilerin bunu biliyor olmas\u0131 da imkans\u0131zd\u0131r. Dolay\u0131s\u0131yla da bu gibi durumlarda se\u00e7ilecek en g\u00fcvenli yol yakalanmam\u0131\u015f t\u00fcm&nbsp; hatalar\u0131n s\u00fcreci tutars\u0131z bir duruma soktu\u011fu varsay\u0131m\u0131d\u0131r. Tutars\u0131z bir duruma giren s\u00fcrecin ise sistemin genel tutarl\u0131l\u0131\u011f\u0131n\u0131n korunmas\u0131 ve g\u00fcvenlik gibi gerek\u00e7elerle derhal sonland\u0131r\u0131lmas\u0131 gereklidir.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; CLR\u2019\u0131n ilk s\u00fcr\u00fcm\u00fcn\u00fc inceledi\u011fimizde; bir uygulaman\u0131n ana i\u015f par\u00e7ac\u0131\u011f\u0131nda olu\u015fan ve hi\u00e7 bir \u015fekilde programsal olarak yakalanarak y\u00f6netilmemi\u015f olan hatalarda sistem derhal uygulamay\u0131 sonland\u0131rmaktayd\u0131. Buna kar\u015f\u0131l\u0131k, ana i\u015f par\u00e7ac\u0131\u011f\u0131 d\u0131\u015f\u0131nda olu\u015fturulan di\u011fer t\u00fcm i\u015f par\u00e7ac\u0131klar\u0131nda olu\u015fan hatalarda ise sadece ilgili i\u015f par\u00e7ac\u0131\u011f\u0131 sonland\u0131r\u0131larak uygulaman\u0131n \u00e7al\u0131\u015fmas\u0131na devam etmesine izin verilmekteydi. Bu durumun, ilgili i\u015f par\u00e7ac\u0131\u011f\u0131 derhal sonland\u0131r\u0131lsa bile, uygulaman\u0131n genelinde bir tutars\u0131zl\u0131k olu\u015fturdu\u011fu ve kimi zaman da \u00f6nemli g\u00fcvenlik zafiyetleri ortaya \u00e7\u0131kard\u0131\u011f\u0131 fark edilince takip eden s\u00fcr\u00fcmde de\u011fi\u015ftirildi. CLR 2.0 ile birlikte; <strong>varsay\u0131lan olarak uygulaman\u0131n ana ya da yan i\u015f par\u00e7ac\u0131klar\u0131n\u0131n herhangi birisinde yakalanmam\u0131\u015f bir hata olmas\u0131 durumunda uygulama derhal sonland\u0131r\u0131lmakta<\/strong>, dolay\u0131s\u0131yla da sistemin tutarl\u0131l\u0131\u011f\u0131 ve g\u00fcvenli\u011fi de artt\u0131r\u0131lm\u0131\u015f oldu.<\/p>\n\n\n\n<p>&nbsp;&nbsp; CLR \u00fczerinde hatalar\u0131n ne \u015fekilde y\u00f6netildi\u011fini g\u00f6rd\u00fckten sonra isterseniz bir de asenkron programlamada bu durumu inceleyelim; Asenkron bir kod par\u00e7ac\u0131\u011f\u0131nda hata olu\u015fmas\u0131 durumunda nas\u0131l hareket edilmeli? \u00d6rne\u011fin WhenAll ya da WhenAny ile ba\u015flat\u0131lan i\u015fler bekleniyorsa ve bu i\u015flerden bir ya da bir ka\u00e7\u0131nda hata olu\u015fursa nas\u0131l bildirilir?<\/p>\n\n\n\n<p>&nbsp;&nbsp; WhenAll ile t\u00fcm i\u015flerin bitmesini beklerken, bu i\u015flerden olu\u015fan hatalar beklenen t\u00fcm i\u015flerin bitmesi sonras\u0131 bize toplu olarak iletilecektir. Burada dikkat edilmesi gereken nokta; asl\u0131nda al\u0131nan hata mesaj\u0131n\u0131n sadece ilk olu\u015fan hataya ait olmas\u0131d\u0131r. Dolay\u0131s\u0131yla olu\u015fan t\u00fcm hatalar\u0131n tespit edilebilmesi i\u00e7in daha farkl\u0131 bir s\u00fcrecin takip ediliyor olmas\u0131 gereklidir. \u0130lk hatan\u0131n g\u00f6nderilmesi nedeniyle catch bloklar\u0131nda sadece ilk hata ile ilgili olan blokta yer alan kod i\u015fletilecektir. Daha do\u011fru bir hata yakalama i\u00e7in genel bir catch ekleyerek i\u00e7erisinde t\u00fcm i\u015flemlerin durumlar\u0131n\u0131n kontrol edilmesi gerekecektir.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">try {\n    Task&lt;string> task1 = new WebClient().DownloadStringTaskAsync(\"https:\/\/fatihboy.com\/\");\n    Task&lt;string> task2 = new WebClient().DownloadStringTaskAsync(\"http:\/\/olmayan-bir-url\");\n    Task&lt;string> task3 = new WebClient().DownloadStringTaskAsync(\"http:\/\/olmayan-baska-bir-url\");\n\n    await TaskEx.WhenAll(task1, task2, task3);\n}\ncatch (Exception ex) {\n    \/\/yakalanan hata ile ilgili i\u015f mant\u0131\u011f\u0131\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Yukar\u0131daki \u00f6rnek kodu inceleyecek olursak, uygulaman\u0131n \u00e7al\u0131\u015fmas\u0131 s\u0131ras\u0131nda verilen 3 i\u015ften 2\u2019si ge\u00e7ersiz url nedeniyle hata vererek ba\u015far\u0131s\u0131z olacakt\u0131r; fakat catch ifadesinin i\u00e7erinde bu hatalardan sadece 3.sat\u0131rdaki i\u015fin \u00e7al\u0131\u015fmas\u0131 sonucu olu\u015fan hata gelecektir. Bu durumda da 4. sat\u0131rdaki i\u015fin de ba\u015far\u0131s\u0131z oldu\u011funa dair bir bilgi al\u0131namayacak ve programsal olarak yakalanamayan bir hata olu\u015facakt\u0131r. Bu durumu tam olarak d\u00fczeltmemekle birlikte, 4. sat\u0131rdaki i\u015fleme ili\u015fkin hata bilgisine a\u015fa\u011f\u0131daki \u015fekilde ula\u015f\u0131labilir;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Task&lt;string> task1 = null;\nTask&lt;string> task2 = null;\nTask&lt;string> task3 = null;\ntry {\n    task1 = new WebClient().DownloadStringTaskAsync(\"https:\/\/fatihboy.com\/\");\n    task2 = new WebClient().DownloadStringTaskAsync(\"http:\/\/olmayan-bir-url\");\n    task3 = new WebClient().DownloadStringTaskAsync(\"http:\/\/olmayan-baska-bir-url\");\n\n    await TaskEx.WhenAll(task1, task2, task3);\n}\ncatch (Exception) {\n    if (task1 != null &amp;&amp; task1.Exception != null) {\n        \/\/ilk i\u015fe ili\u015fkin yakalanan\n        \/\/hata ile ilgili i\u015f mant\u0131\u011f\u0131\n    }\n\n    if (task2 != null &amp;&amp; task2.Exception != null) {\n        \/\/ikinci i\u015fe ili\u015fkin yakalanan\n        \/\/hata ile ilgili i\u015f mant\u0131\u011f\u0131\n    }\n\n    if (task3 != null &amp;&amp; task3.Exception != null) {\n        \/\/\u00fc\u00e7\u00fcnc\u00fc i\u015fe ili\u015fkin yakalanan\n        \/\/hata ile ilgili i\u015f mant\u0131\u011f\u0131\n    }\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Task\u2019lar \u00fczerinden ula\u015f\u0131labilen <strong>Exception<\/strong> \u00f6zelli\u011fi yak\u0131ndan incelenecek olursa <strong>AggregateException<\/strong> t\u00fcr\u00fcnden olduklar\u0131 g\u00f6r\u00fclecektir. AggregateException yard\u0131m\u0131yla ilgili i\u015f i\u00e7erisinde \u00e7al\u0131\u015fan t\u00fcm alt i\u015flerde olu\u015fan ve yakalanmam\u0131\u015f t\u00fcm hatalara ula\u015f\u0131labilmektedir.<\/p>\n\n\n\n<p>&nbsp;&nbsp; WhenAny i\u00e7in de durum yukar\u0131da payla\u015ft\u0131klar\u0131mdan farkl\u0131 olmayacakt\u0131r. \u0130lk i\u015fin bitmesi sonras\u0131nda i\u015fleyi\u015fin bir alt sat\u0131ra ge\u00e7mesine izin verilecek ve buradaki i\u015f mant\u0131klar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131lacakt\u0131r; fakat bu s\u0131rada da di\u011fer i\u015fler \u00e7al\u0131\u015fmalar\u0131na devam edecektir. Peki devam eden bu i\u015flerden bir ya da bir ka\u00e7\u0131nda hata olu\u015fmas\u0131 durumunda nas\u0131l hareket edilecek?<\/p>\n\n\n\n<p>&nbsp;&nbsp; Her iki senaryoda da senkron bir programlamadan farkl\u0131 olan b\u00f6ylesi durumlarda hata yakaland\u0131\u011f\u0131nda \u00e7oktan kodun devam\u0131ndaki i\u015f mant\u0131\u011f\u0131 i\u015fletilmi\u015f ve belki de uygulamada tutars\u0131z bir duruma d\u00fc\u015ferek i\u015fleyi\u015fine devam etmi\u015f olacak ya da yukar\u0131daki ilk \u00f6rnekte oldu\u011fu gibi baz\u0131 hatalar programsal olarak fark edilemeden uygulama i\u015fleyi\u015fine devam edecektir.<\/p>\n\n\n\n<p>&nbsp;&nbsp; E\u011fer senkron ve asenkron hata yakalama mant\u0131klar\u0131 birbirinin ayn\u0131 olsayd\u0131, yaz\u0131m\u0131n ba\u015f\u0131nda sizlere anlatt\u0131\u011f\u0131m CLR hata yakalama mant\u0131\u011f\u0131na g\u00f6re her iki durumda da olu\u015fan hatalar yakalanmam\u0131\u015f\/tespit edilememi\u015f olaca\u011f\u0131ndan uygulaman\u0131n i\u015fleyi\u015fi derhal durdurulmal\u0131yd\u0131. Yukar\u0131da yer alan \u00f6rnekte de g\u00f6r\u00fclece\u011fi gibi asenkron programlamada bu senaryolar olduk\u00e7a s\u0131k olu\u015fabilir ve yakalanamayan bu hatalar her zaman i\u00e7in uygulaman\u0131n tutarl\u0131l\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan kritik \u00f6nemde olmayabilir. Senkron programlamadaki hata yakala mant\u0131\u011f\u0131n\u0131n i\u015fletilmesi gerekti\u011fini d\u00fc\u015f\u00fcnelim; peki yukar\u0131daki WhenAll ve WhenAny \u00f6rneklerini d\u00fc\u015f\u00fcn\u00fcrsek; hangi noktada hata yakalanabilecek? Hata yakaland\u0131\u011f\u0131 s\u0131rada b\u00fcy\u00fck olas\u0131l\u0131kla da \u00e7oktan uygulama tutars\u0131z bir duruma d\u00fc\u015fm\u00fc\u015f ve art\u0131k \u00e7al\u0131\u015ft\u0131r\u0131lmamas\u0131 gereken bir devam kodu \u00e7al\u0131\u015ft\u0131r\u0131lm\u0131\u015f olabilir. Yani istesek de istemesek de CLR hatay\u0131 fark edip uygulamay\u0131 sonland\u0131rd\u0131\u011f\u0131nda \u00e7oktan tutars\u0131z durumda uygulamam\u0131z kodlar\u0131n\u0131 i\u015fletmi\u015f olacakt\u0131r. Bu durumda da art\u0131k uygulaman\u0131n sonland\u0131r\u0131lmas\u0131 pek bir anlam ifade etmeyecektir. Ek olarak asenkron programlamadaki her hata senkrondaki kadar kritik \u00f6nem arz etmeyebilir. Async tasarlan\u0131rken i\u015fte tam bu mant\u0131k ile hareket edilmekte ve <strong>asenkron i\u015flemler s\u0131ras\u0131nda yakalanamayan hatalar nedeniyle uygulama sonland\u0131r\u0131lmamaktad\u0131r.<\/strong><\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp; Payla\u015fm\u0131\u015f oldu\u011fum bu bilgiler do\u011frultusunda, \u00f6zellikle asenkron programlama s\u0131ras\u0131nda, olu\u015fabilecek hatalara kar\u015f\u0131 \u00e7ok daha dikkatli davranarak uygulaman\u0131z\u0131n tutars\u0131z bir durumda \u00e7al\u0131\u015fmas\u0131n\u0131n ve hatta g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n bulunmas\u0131n\u0131n \u00f6n\u00fcne ge\u00e7menizin \u00f6nemi \u00e7ok daha fazla olacakt\u0131r. C# bir sonraki s\u00fcr\u00fcm\u00fcyle birlikte pek \u00e7ok yaz\u0131l\u0131m\u0131n g\u00f6zden ge\u00e7irilerek asenkron olarak kodlanaca\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnecek olursak, bu uygulamalar\u0131n olduk\u00e7a dikkatli kodlanmas\u0131 ve test edilmesinin olas\u0131 yeni hatalar\u0131n \u00f6n\u00fcne ge\u00e7ebilmek ad\u0131na ne kadar \u00f6nemli olaca\u011f\u0131 g\u00f6r\u00fclecektir.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Son olarak; mevcut haliyle, standart senkron hata yakalama mant\u0131\u011f\u0131ndan farkl\u0131 hareket eden ve yukar\u0131da \u00f6zetlemeye \u00e7al\u0131\u015ft\u0131\u011f\u0131m asenkron i\u015flemlerinin hen\u00fcz CTP seviyesinde oldu\u011funu unutmayarak ilerleyen s\u00fcr\u00fcmlerde bu yakla\u015f\u0131m\u0131n de\u011fi\u015febilece\u011fini not d\u00fc\u015fmeliyim.<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp;&nbsp;&nbsp; Asenkron programlaman\u0131n detaylar\u0131na indi\u011fimiz makale serisine ba\u015flarken sizlere async ve await sayesinde neredeyse ayn\u0131&nbsp; senkron programlar gibi asenkron programlama yapabiliyor oldu\u011fumuzdan bahsetmi\u015ftim. Bu benzerli\u011fe belki tek\/en \u00f6nemli istisna ise hata y\u00f6netimidir. Bu makalemde, asenkron programlama ile u\u011fra\u015facaksan\u0131z kesinlikle bilmeniz ve dikkat etmeniz gereken, hata y\u00f6netiminin detaylar\u0131n\u0131 sizinle payla\u015f\u0131yor olaca\u011f\u0131m. &nbsp;&nbsp;&nbsp; Asenkron programlamadaki hata y\u00f6netiminin&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/asenkron-programlamada-hata-yonetimi\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":33763,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77,28],"tags":[113,41],"class_list":["post-8986","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csharp","category-turkce","tag-async","tag-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Asenkron Programlamada Hata Y\u00f6netimi - Fatih Boy<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihboy.com\/en\/asenkron-programlamada-hata-yonetimi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Asenkron Programlamada Hata Y\u00f6netimi - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"&nbsp;&nbsp;&nbsp;&nbsp; Asenkron programlaman\u0131n detaylar\u0131na indi\u011fimiz makale serisine ba\u015flarken sizlere async ve await sayesinde neredeyse ayn\u0131&nbsp; senkron programlar gibi asenkron programlama yapabiliyor oldu\u011fumuzdan bahsetmi\u015ftim. Bu benzerli\u011fe belki tek\/en \u00f6nemli istisna ise hata y\u00f6netimidir. Bu makalemde, asenkron programlama ile u\u011fra\u015facaksan\u0131z kesinlikle bilmeniz ve dikkat etmeniz gereken, hata y\u00f6netiminin detaylar\u0131n\u0131 sizinle payla\u015f\u0131yor olaca\u011f\u0131m. &nbsp;&nbsp;&nbsp; Asenkron programlamadaki hata y\u00f6netiminin...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/asenkron-programlamada-hata-yonetimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2011-07-03T19:25:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-25T06:34:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/07\/boss.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"1201\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Fatih Boy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Boy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"Asenkron Programlamada Hata Y\u00f6netimi\",\"datePublished\":\"2011-07-03T19:25:00+00:00\",\"dateModified\":\"2021-06-25T06:34:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/\"},\"wordCount\":1326,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/07\/boss.jpg\",\"keywords\":[\"Async\",\"C#\"],\"articleSection\":[\"C#\",\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/\",\"url\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/\",\"name\":\"Asenkron Programlamada Hata Y\u00f6netimi - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/07\/boss.jpg\",\"datePublished\":\"2011-07-03T19:25:00+00:00\",\"dateModified\":\"2021-06-25T06:34:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/07\/boss.jpg\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/07\/boss.jpg\",\"width\":1800,\"height\":1201},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Asenkron Programlamada Hata Y\u00f6netimi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihboy.com\/#website\",\"url\":\"https:\/\/fatihboy.com\/\",\"name\":\"Fatih Boy\",\"description\":\"Ki\u015fisel Web Sitesi\",\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihboy.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\",\"name\":\"Fatih Boy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"caption\":\"Fatih Boy\"},\"logo\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/fatihboy.com\"],\"url\":\"https:\/\/fatihboy.com\/en\/author\/fatih\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Asenkron Programlamada Hata Y\u00f6netimi - Fatih Boy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihboy.com\/en\/asenkron-programlamada-hata-yonetimi\/","og_locale":"en_US","og_type":"article","og_title":"Asenkron Programlamada Hata Y\u00f6netimi - Fatih Boy","og_description":"&nbsp;&nbsp;&nbsp;&nbsp; Asenkron programlaman\u0131n detaylar\u0131na indi\u011fimiz makale serisine ba\u015flarken sizlere async ve await sayesinde neredeyse ayn\u0131&nbsp; senkron programlar gibi asenkron programlama yapabiliyor oldu\u011fumuzdan bahsetmi\u015ftim. Bu benzerli\u011fe belki tek\/en \u00f6nemli istisna ise hata y\u00f6netimidir. Bu makalemde, asenkron programlama ile u\u011fra\u015facaksan\u0131z kesinlikle bilmeniz ve dikkat etmeniz gereken, hata y\u00f6netiminin detaylar\u0131n\u0131 sizinle payla\u015f\u0131yor olaca\u011f\u0131m. &nbsp;&nbsp;&nbsp; Asenkron programlamadaki hata y\u00f6netiminin...Read More","og_url":"https:\/\/fatihboy.com\/en\/asenkron-programlamada-hata-yonetimi\/","og_site_name":"Fatih Boy","article_published_time":"2011-07-03T19:25:00+00:00","article_modified_time":"2021-06-25T06:34:58+00:00","og_image":[{"width":1800,"height":1201,"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/07\/boss.jpg","type":"image\/jpeg"}],"author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"Asenkron Programlamada Hata Y\u00f6netimi","datePublished":"2011-07-03T19:25:00+00:00","dateModified":"2021-06-25T06:34:58+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/"},"wordCount":1326,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/07\/boss.jpg","keywords":["Async","C#"],"articleSection":["C#","T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/","url":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/","name":"Asenkron Programlamada Hata Y\u00f6netimi - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/07\/boss.jpg","datePublished":"2011-07-03T19:25:00+00:00","dateModified":"2021-06-25T06:34:58+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/07\/boss.jpg","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/07\/boss.jpg","width":1800,"height":1201},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/asenkron-programlamada-hata-yonetimi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"Asenkron Programlamada Hata Y\u00f6netimi"}]},{"@type":"WebSite","@id":"https:\/\/fatihboy.com\/#website","url":"https:\/\/fatihboy.com\/","name":"Fatih Boy","description":"Ki\u015fisel Web Sitesi","publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihboy.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158","name":"Fatih Boy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","caption":"Fatih Boy"},"logo":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/fatihboy.com"],"url":"https:\/\/fatihboy.com\/en\/author\/fatih\/"}]}},"brizy_media":[],"_links":{"self":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/8986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/comments?post=8986"}],"version-history":[{"count":1,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/8986\/revisions"}],"predecessor-version":[{"id":33764,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/8986\/revisions\/33764"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media\/33763"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=8986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=8986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=8986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}