[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:backend\u002Fpython-errors-context":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","","python-errors-context","Python Errors Context","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,93,96,99,102,105,108,111,114,117,120,123,126,129,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":91,"name":92,"count":11},"nodejs-error-handling","Nodejs Error Handling",{"key":94,"name":95,"count":11},"nodejs-event-loop-async","Nodejs Event Loop Async",{"key":97,"name":98,"count":11},"nodejs-memory-performance","Nodejs Memory Performance",{"key":100,"name":101,"count":11},"nodejs-modules-streams","Nodejs Modules Streams",{"key":103,"name":104,"count":11},"nodejs-stdlib-http","Nodejs Stdlib Http",{"key":106,"name":107,"count":11},"nodejs-testing-tooling","Nodejs Testing Tooling",{"key":109,"name":110,"count":11},"php-concurrency-async","Php Concurrency Async",{"key":112,"name":113,"count":11},"php-exceptions","Php Exceptions",{"key":115,"name":116,"count":11},"php-generics-interfaces","Php Generics Interfaces",{"key":118,"name":119,"count":11},"php-memory-performance","Php Memory Performance",{"key":121,"name":122,"count":11},"php-stdlib-http","Php Stdlib Http",{"key":124,"name":125,"count":11},"php-testing-tooling","Php Testing Tooling",{"key":127,"name":128,"count":11},"python-concurrency-async","Python Concurrency Async",{"key":8,"name":9,"count":11},{"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,201,214,227,240],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":181,"explanation":186},"019f6c9d-371b-7943-9105-a1f71188c28d",2,"```python\ntry:\n    int(\"abc\")\nexcept Exception:\n    print(\"A\")\nexcept ValueError:\n    print(\"B\")\n```\nWhat happens when this code runs?",[174,177,180,183],{"key":175,"text":176},"a","\"B\" is printed, because ValueError is the more specific exception type and Python always matches the most specific except clause first",{"key":178,"text":179},"b","Python raises a SyntaxError at definition time because a more specific except clause appears after a more general one",{"key":181,"text":182},"c","\"A\" is printed: the first matching except clause (Exception) handles it, so the ValueError clause below is unreachable but not itself an error",{"key":184,"text":185},"d","Both \"A\" and \"B\" are printed, because Python evaluates every except clause whose type matches the raised exception's type, running each matching handler once in source order regardless of earlier matches","except clauses are tried top to bottom, and the first one whose type matches (via isinstance\u002Fissubclass) wins — only one runs. Since ValueError is a subclass of Exception, the first clause catches it and prints \"A\"; the second clause becomes dead code. Python does not detect this ordering issue as a SyntaxError (only a bare `except:` must be last).",{"id":188,"topic":9,"difficulty":189,"body":190,"options":191,"correct_key":175,"explanation":200},"019f6c9d-371c-722f-a4ce-ecdf5cdda07c",1,"In a `try\u002Fexcept\u002Ffinally` block, when does the code inside `finally` execute?",[192,194,196,198],{"key":175,"text":193},"Always, whether or not an exception was raised, including when the try block returns early",{"key":178,"text":195},"Only when an exception was raised and caught by a matching except clause",{"key":181,"text":197},"Only when no exception was raised in the try block, since finally is meant to complement a successful else branch rather than run unconditionally on every path",{"key":184,"text":199},"Only when the exception propagates uncaught out of the function","`finally` is guaranteed to run on every path out of the try\u002Fexcept structure: normal completion, a caught exception, an uncaught exception, or even a `return`\u002F`break`\u002F`continue` inside try or except. It exists specifically to run cleanup code unconditionally.",{"id":202,"topic":9,"difficulty":171,"body":203,"options":204,"correct_key":184,"explanation":213},"019f6c9d-371c-793d-be87-326bb85ae5d2","```python\ndef parse(s):\n    try:\n        n = int(s)\n    except ValueError:\n        return None\n    else:\n        n *= 2\n    finally:\n        print(\"done\")\n    return n\n\nprint(parse(\"5\"))\n```\nWhat is printed?",[205,207,209,211],{"key":175,"text":206},"\"done\" is printed, then None is returned, because the else block does not affect the value of n",{"key":178,"text":208},"A ValueError is raised, because int(\"5\") succeeding in try does not allow an else clause to run",{"key":181,"text":210},"Nothing is printed at all in this run, because \"done\" only appears on the branch where int(s) raises an exception and control jumps to the except clause",{"key":184,"text":212},"\"done\" is printed, then 10 is returned, since the else block runs when no exception occurred and doubles n before finally executes","int(\"5\") succeeds, so except is skipped and else runs, setting n to 10. finally always runs next, printing \"done\". Since no early return happened inside try\u002Fexcept, execution falls through to `return n`, giving 10.",{"id":215,"topic":9,"difficulty":171,"body":216,"options":217,"correct_key":178,"explanation":226},"019f6c9d-371d-7261-b8b0-aa3676f83a0d","A developer wraps `value = config[\"timeout\"]` in `try\u002Fexcept IndexError` to guard against a missing key. What happens when \"timeout\" is absent from `config`?",[218,220,222,224],{"key":175,"text":219},"IndexError is raised, because accessing a missing dict key also raises IndexError, so the except block correctly handles it",{"key":178,"text":221},"KeyError is raised, which is not caught by `except IndexError`, so the exception propagates uncaught out of the function",{"key":181,"text":223},"Nothing is raised; a missing dict key silently evaluates to None",{"key":184,"text":225},"Python raises AttributeError, since dict access requires the key to already exist as an attribute","Missing dictionary keys raise KeyError, not IndexError (IndexError is for sequences like list\u002Ftuple indexed out of range). Since KeyError is not a subclass of IndexError, the except clause does not match and the exception propagates.",{"id":228,"topic":9,"difficulty":189,"body":229,"options":230,"correct_key":178,"explanation":239},"019f6c9d-371d-796d-a3ba-8ccbadf55b4a","Which statement about Python's built-in exception hierarchy is correct?",[231,233,235,237],{"key":175,"text":232},"ZeroDivisionError and ArithmeticError are unrelated classes; catching one never catches the other",{"key":178,"text":234},"ZeroDivisionError is a subclass of ArithmeticError, so `except ArithmeticError` also catches a ZeroDivisionError",{"key":181,"text":236},"ArithmeticError is a subclass of ZeroDivisionError",{"key":184,"text":238},"Both are direct subclasses of BaseException with no shared parent class","Python's built-in exceptions form a hierarchy: ZeroDivisionError inherits from ArithmeticError, which inherits from Exception. Catching the parent class ArithmeticError also catches all its subclasses, including ZeroDivisionError and OverflowError.",{"id":241,"topic":9,"difficulty":242,"body":243,"options":244,"correct_key":184,"explanation":253},"019f6c9d-371e-726a-8e50-77c3c009d329",3,"```python\ndef validate(n):\n    try:\n        if n \u003C 0:\n            raise ValueError(\"negative\")\n    except ValueError:\n        print(\"logging\")\n        raise\n\ntry:\n    validate(-1)\nexcept ValueError as e:\n    print(f\"caught: {e}\")\n```\nWhat is printed?",[245,247,249,251],{"key":175,"text":246},"A RuntimeError is raised, because a bare `raise` requires an explicit argument whenever it appears outside of an active exception-handling context in the call stack",{"key":178,"text":248},"Only \"logging\" is printed; the bare `raise` swallows the exception, so the outer except never triggers",{"key":181,"text":250},"\"caught: negative\" is printed alone; \"logging\" is suppressed because raise happens before the print takes effect",{"key":184,"text":252},"\"logging\" then \"caught: negative\" are printed, because a bare `raise` inside an except block re-raises the currently handled exception unchanged","Inside an except block, a bare `raise` (no arguments) re-raises the exception that is currently being handled, preserving its type, value, and traceback. So \"logging\" prints first, then the same ValueError propagates to the outer try, which catches it and prints \"caught: negative\".",{"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":189,"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":171,"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":379,"name_en":144,"sort":380,"specializations":381},"Güvenlik",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},[431,10],"tr",[433,434],"google","github",21750,true]