[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en: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","en",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 Design",{"key":22,"name":23,"count":11},"caching","Caching",{"key":25,"name":26,"count":11},"concurrency","Concurrency",{"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","Databases \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","Messaging \u002F Queues",{"key":88,"name":89,"count":11},"networking-http","Networking \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","Security",{"key":146,"name":147,"count":11},"testing","Testing",[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,"In Node.js, what is the primary purpose of a `try\u002Fcatch` block?",[174,177,180,183],{"key":175,"text":176},"a","To register a callback that runs after all pending I\u002FO operations finish",{"key":178,"text":179},"b","To automatically retry a failed function call up to three times",{"key":181,"text":182},"c","To catch and handle errors thrown synchronously inside the try block",{"key":184,"text":185},"d","To pause execution until a Promise settles, without using `await`","try\u002Fcatch catches exceptions thrown synchronously during the execution of the code inside the try block, letting you handle them in the catch block instead of letting them propagate and crash the program. It has no special retry or I\u002FO-scheduling behavior.",{"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```\nWhat does this print?",[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},"The program crashes before printing anything","e.message holds just the message text passed to the Error constructor ('something failed'). Printing e directly or calling e.toString() would include the 'Error: ' prefix, but e.message alone does not.",{"id":201,"topic":9,"difficulty":202,"body":203,"options":204,"correct_key":178,"explanation":213},"019f71b0-db20-7d01-a5f8-196867c08a63",2,"You're writing a callback for an async file operation using the classic Node.js callback convention. What should the first parameter of that callback represent?",[205,207,209,211],{"key":175,"text":206},"The number of bytes processed so far",{"key":178,"text":208},"The error (or `null` if none occurred), reserved as the first argument",{"key":181,"text":210},"A boolean flag indicating whether the operation is complete",{"key":184,"text":212},"The result data, since Node always resolves errors internally","Node's error-first callback convention reserves the first parameter for an error object (or null when there was no error); the actual result is passed as the second parameter, e.g. `(err, data) => {...}`. This convention lets every callback-based API be checked for failure the same way.",{"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```\nSuppose `data.txt` does not exist. What happens?",[218,220,222,224],{"key":175,"text":219},"contents.toUpperCase() throws a TypeError that crashes the process",{"key":178,"text":221},"Node retries reading the file automatically before giving up",{"key":181,"text":223},"err is null and contents is an empty string",{"key":184,"text":225},"The error branch runs, logs the failure, and returns before touching contents","fs.readFile calls back with err set (e.g. an ENOENT error) and contents undefined when the file is missing. Because the handler checks `if (err)` first and returns, it never reaches contents.toUpperCase(), avoiding a crash.",{"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```\nWhat happens when this script runs?",[231,233,235,237],{"key":175,"text":232},"It prints \"start\", then the process crashes with the error and never prints \"end\"",{"key":178,"text":234},"It prints \"start\", then \"end\", then the error is logged",{"key":181,"text":236},"It prints \"start\" and \"end\", ignoring the thrown error",{"key":184,"text":238},"It fails to compile because parseAge never returns a value","There is no try\u002Fcatch anywhere in the call chain, so the thrown Error propagates all the way up, Node prints the stack trace, and the process exits with a non-zero code. console.log('end') never runs because execution stops at the throw.",{"id":241,"topic":9,"difficulty":171,"body":242,"options":243,"correct_key":181,"explanation":252},"019f71b0-db23-7f37-8ff8-e9218af445b1","Which three properties does a standard JavaScript `Error` object always have?",[244,246,248,250],{"key":175,"text":245},"code, errno, and syscall",{"key":178,"text":247},"status, headers, and body",{"key":181,"text":249},"message, name, and stack",{"key":184,"text":251},"type, value, and cause","Every Error instance has message (the description you passed in), name (defaults to 'Error', overridden by subclasses), and stack (a string with the trace). code\u002Ferrno\u002Fsyscall are extra properties Node adds to certain system errors like fs errors, not part of the base Error shape.",{"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":379,"name_en":144,"sort":380,"specializations":381},"Güvenlik",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},[431,10],"tr",[433,434],"google","github",21750,true]