[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:backend\u002Fnodejs-error-handling":4,"config":253},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","","nodejs-error-handling","Nodejs Error Handling","tr",75,3300,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,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":31,"name":32,"count":11},"csharp-exceptions","Csharp Exceptions",{"key":34,"name":35,"count":11},"csharp-generics-interfaces","Csharp Generics Interfaces",{"key":37,"name":38,"count":11},"csharp-memory-performance","Csharp Memory Performance",{"key":40,"name":41,"count":11},"csharp-stdlib-http","Csharp Stdlib Http",{"key":43,"name":44,"count":11},"csharp-testing-tooling","Csharp Testing Tooling",{"key":46,"name":47,"count":11},"databases-sql","Veritabanı \u002F SQL",{"key":49,"name":50,"count":11},"go-concurrency","Go Concurrency",{"key":52,"name":53,"count":11},"go-errors","Go Errors",{"key":55,"name":56,"count":11},"go-interfaces-generics","Go Interfaces Generics",{"key":58,"name":59,"count":11},"go-memory-performance","Go Memory Performance",{"key":61,"name":62,"count":11},"go-stdlib-http","Go Stdlib Http",{"key":64,"name":65,"count":11},"go-testing-tooling","Go Testing Tooling",{"key":67,"name":68,"count":11},"java-concurrency","Java Concurrency",{"key":70,"name":71,"count":11},"java-exceptions","Java Exceptions",{"key":73,"name":74,"count":11},"java-generics-interfaces","Java Generics Interfaces",{"key":76,"name":77,"count":11},"java-memory-jvm","Java Memory Jvm",{"key":79,"name":80,"count":11},"java-stdlib-http","Java Stdlib Http",{"key":82,"name":83,"count":11},"java-testing-tooling","Java Testing Tooling",{"key":85,"name":86,"count":11},"messaging-queues","Mesajlaşma \u002F Kuyruklar",{"key":88,"name":89,"count":11},"networking-http","Ağ \u002F HTTP",{"key":8,"name":9,"count":11},{"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,200,214,227,240],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":181,"explanation":186},"019f71b0-daec-73fc-9e1f-c13349eac8ca",1,"Node.js'de bir `try\u002Fcatch` bloğunun temel amacı nedir?",[174,177,180,183],{"key":175,"text":176},"a","Bekleyen tüm I\u002FO işlemleri bittikten sonra çalışacak bir callback kaydetmek",{"key":178,"text":179},"b","Başarısız bir fonksiyon çağrısını otomatik olarak üç kere yeniden denemek",{"key":181,"text":182},"c","try bloğu içinde senkron olarak fırlatılan hataları yakalayıp yönetmek",{"key":184,"text":185},"d","`await` kullanmadan bir Promise sonuçlanana kadar çalışmayı durdurmak","try\u002Fcatch, try bloğu içindeki kodun çalışması sırasında senkron olarak fırlatılan istisnaları yakalar ve bunları programı çökertip propagasyona bırakmak yerine catch bloğunda yönetmenizi sağlar. Özel bir yeniden deneme ya da I\u002FO zamanlama davranışı yoktur.",{"id":188,"topic":9,"difficulty":171,"body":189,"options":190,"correct_key":175,"explanation":199},"019f71b0-db1d-7985-9848-65fe31052649","```javascript\ntry {\n  throw new Error('something failed');\n} catch (e) {\n  console.log(e.message);\n}\n```\nBu ne yazdırır?",[191,193,195,197],{"key":175,"text":192},"\"something failed\"",{"key":178,"text":194},"\"Error: something failed\"",{"key":181,"text":196},"\"undefined\"",{"key":184,"text":198},"Program herhangi bir şey yazdırmadan çöker","e.message yalnızca Error constructor'ına verilen mesaj metnini ('something failed') tutar. e'yi doğrudan yazdırmak ya da e.toString() çağırmak 'Error: ' önekini de eklerdi, ama tek başına e.message eklemez.",{"id":201,"topic":9,"difficulty":202,"body":203,"options":204,"correct_key":178,"explanation":213},"019f71b0-db20-7d01-a5f8-196867c08a63",2,"Klasik Node.js callback konvansiyonunu kullanarak asenkron bir dosya işlemi için callback yazıyorsunuz. Bu callback'in ilk parametresi neyi temsil etmeli?",[205,207,209,211],{"key":175,"text":206},"O ana kadar işlenen byte sayısını",{"key":178,"text":208},"Hatayı (hata yoksa `null`), ilk argüman olarak ayrılmış şekilde",{"key":181,"text":210},"İşlemin tamamlanıp tamamlanmadığını belirten bir boolean bayrağı",{"key":184,"text":212},"Sonuç verisini, çünkü Node hataları içeride her zaman kendisi çözer","Node'un error-first callback konvansiyonu ilk parametreyi bir hata nesnesi için ayırır (hata yoksa null); gerçek sonuç ikinci parametre olarak geçirilir, örn. `(err, data) => {...}`. Bu konvansiyon sayesinde callback tabanlı her API aynı şekilde başarısızlık kontrolüne tabi tutulabilir.",{"id":215,"topic":9,"difficulty":202,"body":216,"options":217,"correct_key":184,"explanation":226},"019f71b0-db21-7b1b-8595-d5502b52da88","```javascript\nconst fs = require('fs');\n\nfs.readFile('data.txt', 'utf8', (err, contents) => {\n  if (err) {\n    console.error('failed to read file:', err.message);\n    return;\n  }\n  console.log(contents.toUpperCase());\n});\n```\n`data.txt` mevcut değilse ne olur?",[218,220,222,224],{"key":175,"text":219},"contents.toUpperCase() süreci çökerten bir TypeError fırlatır",{"key":178,"text":221},"Node dosyayı okumayı vazgeçmeden önce otomatik olarak yeniden dener",{"key":181,"text":223},"err null olur ve contents boş string olur",{"key":184,"text":225},"Hata dalı çalışır, başarısızlığı loglar ve contents'e dokunmadan return eder","Dosya mevcut olmadığında fs.readFile, err ayarlanmış (örn. bir ENOENT hatası) ve contents undefined olacak şekilde geri çağırır. Handler önce `if (err)` kontrolü yapıp return ettiği için asla contents.toUpperCase()'e ulaşmaz, bu da çökmeyi engeller.",{"id":228,"topic":9,"difficulty":202,"body":229,"options":230,"correct_key":175,"explanation":239},"019f71b0-db22-79e2-8634-27d3753f0b0a","```javascript\nfunction parseAge(input) {\n  throw new Error(`invalid age: ${input}`);\n}\n\nconsole.log('start');\nparseAge('abc');\nconsole.log('end');\n```\nBu script çalıştığında ne olur?",[231,233,235,237],{"key":175,"text":232},"\"start\" yazdırır, ardından süreç hatayla çöker ve asla \"end\" yazdırmaz",{"key":178,"text":234},"\"start\" yazdırır, sonra \"end\", sonra hata loglanır",{"key":181,"text":236},"Fırlatılan hatayı yok sayarak \"start\" ve \"end\" yazdırır",{"key":184,"text":238},"parseAge hiçbir değer döndürmediği için derlenmez","Çağrı zincirinde hiçbir yerde try\u002Fcatch yoktur, bu yüzden fırlatılan Error tüm yığını kat eder, Node stack trace'i yazdırır ve süreç sıfır olmayan bir kodla sonlanır. console.log('end') asla çalışmaz çünkü çalışma throw noktasında durur.",{"id":241,"topic":9,"difficulty":171,"body":242,"options":243,"correct_key":181,"explanation":252},"019f71b0-db23-7f37-8ff8-e9218af445b1","Standart bir JavaScript `Error` nesnesi her zaman hangi üç özelliğe sahiptir?",[244,246,248,250],{"key":175,"text":245},"code, errno ve syscall",{"key":178,"text":247},"status, headers ve body",{"key":181,"text":249},"message, name ve stack",{"key":184,"text":251},"type, value ve cause","Her Error örneğinde message (verdiğiniz açıklama), name (varsayılan 'Error', alt sınıflarda değiştirilir) ve stack (trace içeren bir string) bulunur. code\u002Ferrno\u002Fsyscall, Node'un fs gibi belirli sistem hatalarına eklediği ek özelliklerdir, temel Error yapısının parçası değildir.",{"fields":254,"seniorities":424,"interview_shapes":425,"locales":430,"oauth":432,"question_count":435,"coach_enabled":436,"jd_match_enabled":436},[255,266,286,303,327,340,359,378,398,405,411,418],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":256},[257,260,261,262,263,264,265],{"key":258,"name":259,"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":267,"name_tr":268,"name_en":268,"sort":202,"specializations":269},"frontend","Frontend",[270,271,274,277,280,283],{"key":258,"name":259,"field":267},{"key":272,"name":273,"field":267},"javascript","JavaScript",{"key":275,"name":276,"field":267},"typescript","TypeScript",{"key":278,"name":279,"field":267},"react","React",{"key":281,"name":282,"field":267},"vue","Vue",{"key":284,"name":285,"field":267},"angular","Angular",{"key":287,"name_tr":288,"name_en":288,"sort":289,"specializations":290},"fullstack","Fullstack",3,[291,292,293,294,295,296,297,298,299,300,301,302],{"key":258,"name":259,"field":287},{"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":272,"name":273,"field":267},{"key":275,"name":276,"field":267},{"key":278,"name":279,"field":267},{"key":281,"name":282,"field":267},{"key":284,"name":285,"field":267},{"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":258,"name":259,"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":258,"name":259,"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":258,"name":259,"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":258,"name":259,"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":258,"name":259,"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":258,"name":259,"field":399},{"key":406,"name_tr":407,"name_en":407,"sort":408,"specializations":409},"data-engineer","Data Engineer",10,[410],{"key":258,"name":259,"field":406},{"key":412,"name_tr":413,"name_en":414,"sort":415,"specializations":416},"game-dev","Oyun Geliştirme","Game Development",11,[417],{"key":258,"name":259,"field":412},{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423],{"key":258,"name":259,"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]