[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:backend\u002Fcsharp-exceptions":4,"config":254},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":148,"samples":168},"backend","Backend","","csharp-exceptions","Csharp Exceptions","tr",75,3300,[14,15,16],"junior","mid","senior",[18,21,24,27,30,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145],{"key":19,"name":20,"count":11},"api-design","API Tasarımı",{"key":22,"name":23,"count":11},"caching","Caching",{"key":25,"name":26,"count":11},"concurrency","Eşzamanlılık",{"key":28,"name":29,"count":11},"csharp-concurrency-async","Csharp Concurrency Async",{"key":8,"name":9,"count":11},{"key":32,"name":33,"count":11},"csharp-generics-interfaces","Csharp Generics Interfaces",{"key":35,"name":36,"count":11},"csharp-memory-performance","Csharp Memory Performance",{"key":38,"name":39,"count":11},"csharp-stdlib-http","Csharp Stdlib Http",{"key":41,"name":42,"count":11},"csharp-testing-tooling","Csharp Testing Tooling",{"key":44,"name":45,"count":11},"databases-sql","Veritabanı \u002F SQL",{"key":47,"name":48,"count":11},"go-concurrency","Go Concurrency",{"key":50,"name":51,"count":11},"go-errors","Go Errors",{"key":53,"name":54,"count":11},"go-interfaces-generics","Go Interfaces Generics",{"key":56,"name":57,"count":11},"go-memory-performance","Go Memory Performance",{"key":59,"name":60,"count":11},"go-stdlib-http","Go Stdlib Http",{"key":62,"name":63,"count":11},"go-testing-tooling","Go Testing Tooling",{"key":65,"name":66,"count":11},"java-concurrency","Java Concurrency",{"key":68,"name":69,"count":11},"java-exceptions","Java Exceptions",{"key":71,"name":72,"count":11},"java-generics-interfaces","Java Generics Interfaces",{"key":74,"name":75,"count":11},"java-memory-jvm","Java Memory Jvm",{"key":77,"name":78,"count":11},"java-stdlib-http","Java Stdlib Http",{"key":80,"name":81,"count":11},"java-testing-tooling","Java Testing Tooling",{"key":83,"name":84,"count":11},"messaging-queues","Mesajlaşma \u002F Kuyruklar",{"key":86,"name":87,"count":11},"networking-http","Ağ \u002F HTTP",{"key":89,"name":90,"count":11},"nodejs-error-handling","Nodejs Error Handling",{"key":92,"name":93,"count":11},"nodejs-event-loop-async","Nodejs Event Loop Async",{"key":95,"name":96,"count":11},"nodejs-memory-performance","Nodejs Memory Performance",{"key":98,"name":99,"count":11},"nodejs-modules-streams","Nodejs Modules Streams",{"key":101,"name":102,"count":11},"nodejs-stdlib-http","Nodejs Stdlib Http",{"key":104,"name":105,"count":11},"nodejs-testing-tooling","Nodejs Testing Tooling",{"key":107,"name":108,"count":11},"php-concurrency-async","Php Concurrency Async",{"key":110,"name":111,"count":11},"php-exceptions","Php Exceptions",{"key":113,"name":114,"count":11},"php-generics-interfaces","Php Generics Interfaces",{"key":116,"name":117,"count":11},"php-memory-performance","Php Memory Performance",{"key":119,"name":120,"count":11},"php-stdlib-http","Php Stdlib Http",{"key":122,"name":123,"count":11},"php-testing-tooling","Php Testing Tooling",{"key":125,"name":126,"count":11},"python-concurrency-async","Python Concurrency Async",{"key":128,"name":129,"count":11},"python-errors-context","Python Errors Context",{"key":131,"name":132,"count":11},"python-memory-performance","Python Memory Performance",{"key":134,"name":135,"count":11},"python-stdlib-http","Python Stdlib Http",{"key":137,"name":138,"count":11},"python-testing-tooling","Python Testing Tooling",{"key":140,"name":141,"count":11},"python-typing-oop","Python Typing Oop",{"key":143,"name":144,"count":11},"security","Güvenlik",{"key":146,"name":147,"count":11},"testing","Test",[149,153,156,159,162,165],{"key":150,"name":151,"count":152},"csharp","C#\u002F.NET",450,{"key":154,"name":155,"count":152},"go","Go",{"key":157,"name":158,"count":152},"java","Java",{"key":160,"name":161,"count":152},"nodejs","Node.js",{"key":163,"name":164,"count":152},"php","PHP",{"key":166,"name":167,"count":152},"python","Python",[169,187,201,214,227,240],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":178,"explanation":186},"019f70e2-e7f3-7583-8540-d2c9bdc4d0fe",1,"```csharp\ntry\n{\n    Console.WriteLine(\"A\");\n    throw new InvalidOperationException();\n}\nfinally\n{\n    Console.WriteLine(\"B\");\n}\n```\nBu kod bloğundan exception dışarı yayılmadan önce (üst seviyede hiçbir şey yakalamadığını varsayarak) ne yazdırılır?",[174,177,180,183],{"key":175,"text":176},"a","Önce B sonra A",{"key":178,"text":179},"b","Önce A sonra B",{"key":181,"text":182},"c","Yalnızca A (catch olmadığı için finally atlanır)",{"key":184,"text":185},"d","Yalnızca B (exception fırlatıldığı için A tamponlanır ve kaybolur)","try bloğu önce çalışır, \"A\"yı yazdırır, sonra fırlatır. Exception çağrı yığınında yukarı yayılmadan önce finally bloğu her zaman çalışır ve \"B\"yi yazdırır. Ancak bundan sonra exception yayılmaya devam eder.",{"id":188,"topic":9,"difficulty":189,"body":190,"options":191,"correct_key":184,"explanation":200},"019f70e2-e7f6-766d-b7d3-eea6d3a3da4e",2,"```csharp\ntry\n{\n    File.ReadAllText(\"data.txt\");\n}\ncatch (Exception e)\n{\n    Console.WriteLine(\"generic: \" + e.Message);\n}\ncatch (FileNotFoundException e)\n{\n    Console.WriteLine(\"specific: \" + e.Message);\n}\n```\nBunu derlemeye çalıştığınızda ne olur?",[192,194,196,198],{"key":175,"text":193},"Sorunsuz derlenir; FileNotFoundException bloğu runtime'da sadece erişilemez olur ama hata vermez, çünkü derleyici erişilemez dalları üretilen IL'den basitçe yeniden düzenler",{"key":178,"text":195},"Sorunsuz derlenir ve derleyici catch bloklarını özgüllüğe göre otomatik yeniden sıraladığı için FileNotFoundException önce yakalar, oysa catch blokları normalde kaynak kodda yazıldıkları sırayla katı biçimde eşleştirilir",{"key":181,"text":197},"Yalnızca gerçekten bir FileNotFoundException fırlatıldığında runtime hatası verir; derleyici bu sıralama sorununu tespit edemez, ve bu sıralama hatası gerçekleşene kadar production'a sessizce fark edilmeden gider",{"key":184,"text":199},"Derleme zamanı hatası: daha genel bir catch clause'u (Exception), daha özgül olandan (FileNotFoundException) önce geliyor, C# buna izin vermez çünkü özgül catch asla erişilemez olurdu","C#, catch clause'larının en özgülden en genele sıralanmasını gerektirir. FileNotFoundException, Exception'dan türediği için catch (Exception)'ı önce koymak sonraki catch (FileNotFoundException)'ı erişilemez yapar ve derleyici bunu sessizce ölü koda izin vermek yerine derleme zamanı hatasıyla reddeder.",{"id":202,"topic":9,"difficulty":189,"body":203,"options":204,"correct_key":175,"explanation":213},"019f70e2-e7fb-7705-ab7b-b637027f35a1",".NET exception sınıf hiyerarşisi hakkında hangi ifade doğrudur?",[205,207,209,211],{"key":175,"text":206},"Exception, hiyerarşinin köküdür; SystemException ve ApplicationException'ın ikisi de Exception'ın alt sınıflarıdır ve özel exception'lar için modern konvansiyon, ApplicationException yerine doğrudan Exception'dan türetmektir",{"key":178,"text":208},"Tüm exception'lar SystemException'dan türemelidir; doğrudan Exception'dan türemeye izin verilmez ve doğrudan Exception'dan bir sınıf türetmeye çalışmak derleyici tarafından hata ile reddedilir",{"key":181,"text":210},"ApplicationException, tüm özel, kullanıcı tanımlı exception'ların türemesi gereken kök sınıftır bazı diğer nesne yönelimli dillerde java.lang.Throwable'ın exception'ları çıpaladığı gibi",{"key":184,"text":212},"Yalnızca CLR'nin kendisinin fırlattığı exception'lar Exception'dan türeyebilir; kullanıcı tanımlı exception'lar bunun yerine IException arayüzünü uygulamalıdır bazı diğer framework'lerin exception'ların bir marker arayüzü uygulamasını gerektirdiği tasarımı andırarak","Exception, tüm hiyerarşinin temel sınıfıdır. SystemException (çoğunlukla) runtime\u002FBCL tarafından tanımlanan exception'lar için kullanılır; ApplicationException aslında kullanıcı tanımlı exception'lar için düşünülmüştü ama kullanımı artık özel exception tiplerini doğrudan Exception'dan türetmek lehine önerilmiyor.",{"id":215,"topic":9,"difficulty":171,"body":216,"options":217,"correct_key":181,"explanation":226},"019f70e2-e7fc-7a14-859c-366cee12be4a","Bir try\u002Fcatch\u002Ffinally bloğunda, finally bloğu ne zaman çalışır?",[218,220,222,224],{"key":175,"text":219},"Yalnızca bir exception fırlatılıp eşleşen bir catch bloğu tarafından yakalanırsa ve çevreleyen metodu aşarak yayılan exception'lar için finally tamamen atlanır",{"key":178,"text":221},"Yalnızca hiç exception fırlatılmazsa ki bu finally'yi try\u002Fcatch bloğundan sonra kod yazmakla işlevsel olarak gereksiz kılardı",{"key":181,"text":223},"Her zaman, exception fırlatılmış olsun ya da olmasın, yakalanmış olsun ya da olmasın",{"key":184,"text":225},"Yalnızca o try için bir catch bloğu yoksa ki bu yaygın bir yanlış anlamadır çünkü finally aslında catch olup olmamasından tamamen bağımsızdır","finally'nin tüm amacı, exception oluşmuş olsun, yakalanmış olsun ya da blok normal şekilde return ile çıkmış olsun, try\u002Fcatch'ten çıkarken koşulsuz olarak çalışmasıdır.",{"id":228,"topic":9,"difficulty":189,"body":229,"options":230,"correct_key":178,"explanation":239},"019f70e2-e7ff-75b1-9ee6-d404d5aa0454","```csharp\ntry\n{\n    DoWork();\n}\ncatch (Exception ex)\n{\n    Console.WriteLine(\"general: \" + ex.Message);\n}\ncatch (InvalidOperationException ex)\n{\n    Console.WriteLine(\"specific: \" + ex.Message);\n}\n```\nBu kod derlendiğinde ne olur?",[231,233,235,237],{"key":175,"text":232},"Sorunsuz derlenir ve InvalidOperationException catch bloğu bu spesifik exception her fırlatıldığında çalışır",{"key":178,"text":234},"Derleme hatası (CS0160): InvalidOperationException catch bloğu erişilemez, çünkü üstündeki Exception catch bloğu InvalidOperationException dahil her exception tipini zaten yakalıyor",{"key":181,"text":236},"Derlenir, ama InvalidOperationException catch bloğu ölü koddur ve derleyici bunu çalışma zamanında hatasız\u002Fuyarısız sessizce yok sayar",{"key":184,"text":238},"InvalidOperationException ilk fırlatıldığında \"unreachable catch clause\" runtime hatası verir","C#, catch bloklarının en spesifikten en genele doğru sıralanmasını zorunlu kılar. InvalidOperationException, Exception'dan türediği için, catch(Exception) bloğu catch(InvalidOperationException)'dan önce yerleştirilirse ikinci blok erişilemez hale gelir — derleyici bunu runtime hatası olarak değil, CS0160 derleme hatası olarak reddeder.",{"id":241,"topic":9,"difficulty":242,"body":243,"options":244,"correct_key":175,"explanation":253},"019f70e2-e801-7ab7-ba1c-1ad09fe6f4cc",3,"```csharp\nvoid Process()\n{\n    using var r = new Resource();\n    Console.WriteLine(\"working\");\n    if (DateTime.Now.Ticks % 2 == 0)\n        return;\n    Console.WriteLine(\"more work\");\n}\n```\nusing bloğu yerine C# 8 \"using declaration\" (parantezsiz) kullanıldığında, r.Dispose() ne zaman çağrılır?",[245,247,249,251],{"key":175,"text":246},"Kapanış parantezinden mi yoksa erken bir return'den mi çıkılsın, çevreleyen bloğun (burada, metodun) sonunda",{"key":178,"text":248},"Deklare edildiği satırdan hemen sonra, \"working\" yazdırılmadan önce çünkü C#, using declaration'ları scope çıkışında değil kendi ifadesinin bulunduğu noktada hevesle değerlendirir",{"key":181,"text":250},"Yalnızca metot normal şekilde son kapanış parantezine ulaştığında; erken bir return dispose'u atlar ki bu using declaration'ları aynı kodu saran istiflenmiş using bloklarından farklı davranmaya iterdi",{"key":184,"text":252},"Otomatik olarak asla — using declaration'lar dispose'u tetiklemek için açık, parantezli bir using bloğu gerektirir ki bu using anahtar kelimesini parantezsiz yazmayı zaten anlamsız kılardı","Bir using declaration, dispose'u belirli bir satıra değil, çevreleyen scope'un (bu durumda metot gövdesinin) sonuna bağlar. Metot son parantezinden mi yoksa erken bir return'den mi çıksın, tıpkı metodun geri kalanını saran bir using bloğu gibi tetiklenir.",{"fields":255,"seniorities":424,"interview_shapes":425,"locales":430,"oauth":432,"question_count":435,"coach_enabled":436,"jd_match_enabled":436},[256,267,287,303,327,340,359,378,398,405,411,418],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":257},[258,261,262,263,264,265,266],{"key":259,"name":260,"field":5},"general","Genel",{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":268,"name_tr":269,"name_en":269,"sort":189,"specializations":270},"frontend","Frontend",[271,272,275,278,281,284],{"key":259,"name":260,"field":268},{"key":273,"name":274,"field":268},"javascript","JavaScript",{"key":276,"name":277,"field":268},"typescript","TypeScript",{"key":279,"name":280,"field":268},"react","React",{"key":282,"name":283,"field":268},"vue","Vue",{"key":285,"name":286,"field":268},"angular","Angular",{"key":288,"name_tr":289,"name_en":289,"sort":242,"specializations":290},"fullstack","Fullstack",[291,292,293,294,295,296,297,298,299,300,301,302],{"key":259,"name":260,"field":288},{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":273,"name":274,"field":268},{"key":276,"name":277,"field":268},{"key":279,"name":280,"field":268},{"key":282,"name":283,"field":268},{"key":285,"name":286,"field":268},{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"devops-cloud","DevOps \u002F Cloud",4,[308,309,312,315,318,321,324],{"key":259,"name":260,"field":304},{"key":310,"name":311,"field":304},"aws","AWS",{"key":313,"name":314,"field":304},"gcp","GCP",{"key":316,"name":317,"field":304},"azure","Azure",{"key":319,"name":320,"field":304},"kubernetes","Kubernetes",{"key":322,"name":323,"field":304},"terraform","Terraform",{"key":325,"name":326,"field":304},"linux","Linux",{"key":328,"name_tr":329,"name_en":329,"sort":330,"specializations":331},"ai-engineer","AI Engineer",5,[332,333,334,337],{"key":259,"name":260,"field":328},{"key":166,"name":167,"field":328},{"key":335,"name":336,"field":328},"llm-rag","LLM\u002FRAG",{"key":338,"name":339,"field":328},"mlops","MLOps",{"key":341,"name_tr":342,"name_en":343,"sort":344,"specializations":345},"database","Veritabanı","Database",6,[346,347,350,353,356],{"key":259,"name":260,"field":341},{"key":348,"name":349,"field":341},"postgresql","PostgreSQL",{"key":351,"name":352,"field":341},"mysql","MySQL",{"key":354,"name":355,"field":341},"mongodb","MongoDB",{"key":357,"name":358,"field":341},"redis","Redis",{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"mobile","Mobil","Mobile",7,[365,366,369,372,375],{"key":259,"name":260,"field":360},{"key":367,"name":368,"field":360},"ios-swift","iOS (Swift)",{"key":370,"name":371,"field":360},"android-kotlin","Android (Kotlin)",{"key":373,"name":374,"field":360},"flutter","Flutter",{"key":376,"name":377,"field":360},"react-native","React Native",{"key":143,"name_tr":144,"name_en":379,"sort":380,"specializations":381},"Security",8,[382,383,386,389,392,395],{"key":259,"name":260,"field":143},{"key":384,"name":385,"field":143},"appsec","AppSec",{"key":387,"name":388,"field":143},"offensive-pentest","Offensive \u002F Pentest",{"key":390,"name":391,"field":143},"cloud-security","Cloud Security",{"key":393,"name":394,"field":143},"devsecops","DevSecOps",{"key":396,"name":397,"field":143},"blue-team-incident","Blue Team \u002F Incident",{"key":399,"name_tr":400,"name_en":401,"sort":402,"specializations":403},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[404],{"key":259,"name":260,"field":399},{"key":406,"name_tr":407,"name_en":407,"sort":408,"specializations":409},"data-engineer","Data Engineer",10,[410],{"key":259,"name":260,"field":406},{"key":412,"name_tr":413,"name_en":414,"sort":415,"specializations":416},"game-dev","Oyun Geliştirme","Game Development",11,[417],{"key":259,"name":260,"field":412},{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423],{"key":259,"name":260,"field":419},[14,15,16],{"junior":426,"mid":428,"senior":429},{"questions":427,"median_sec":3},20,{"questions":427,"median_sec":3},{"questions":427,"median_sec":3},[10,431],"en",[433,434],"google","github",21750,true]