[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr: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","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,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 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":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","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":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```\nBu kod çalıştığında ne olur?",[174,177,180,183],{"key":175,"text":176},"a","\"B\" yazdırılır, çünkü ValueError daha spesifik bir istisna tipidir ve Python her zaman önce en spesifik except bloğunu eşleştirir",{"key":178,"text":179},"b","Python, daha spesifik bir except bloğu daha genel olandan sonra geldiği için tanım anında SyntaxError fırlatır",{"key":181,"text":182},"c","\"A\" yazdırılır: eşleşen ilk except bloğu (Exception) işi yapar, bu yüzden aşağıdaki ValueError bloğu erişilemez hale gelir ama kendisi hata değildir",{"key":184,"text":185},"d","Hem \"A\" hem \"B\" yazdırılır, çünkü Python fırlatılan istisnanın tipiyle eşleşen her except bloğunu, önceki eşleşmeler fark etmeksizin kaynak sırasına göre bir kez çalıştırarak değerlendirir","except blokları yukarıdan aşağıya denenir ve tipi (isinstance\u002Fissubclass ile) eşleşen ilk blok kazanır — yalnızca bir tanesi çalışır. ValueError, Exception'ın alt sınıfı olduğu için ilk blok onu yakalar ve \"A\" yazdırılır; ikinci blok ölü kod haline gelir. Python bu sıralama sorununu SyntaxError olarak algılamaz (yalnızca çıplak `except:` en sonda olmak zorundadır).",{"id":188,"topic":9,"difficulty":189,"body":190,"options":191,"correct_key":175,"explanation":200},"019f6c9d-371c-722f-a4ce-ecdf5cdda07c",1,"Bir `try\u002Fexcept\u002Ffinally` bloğunda, `finally` içindeki kod ne zaman çalışır?",[192,194,196,198],{"key":175,"text":193},"Her zaman, istisna fırlatılsın ya da fırlatılmasın, try bloğu erken return etse bile",{"key":178,"text":195},"Yalnızca bir istisna fırlatılıp eşleşen bir except bloğu tarafından yakalandığında",{"key":181,"text":197},"Yalnızca try bloğunda istisna fırlatılmadığında, çünkü finally her yolda koşulsuz çalışmak yerine başarılı bir else dalını tamamlamak için tasarlanmıştır",{"key":184,"text":199},"Yalnızca istisna yakalanmadan fonksiyon dışına yayıldığında","`finally`, try\u002Fexcept yapısından çıkışın her yolunda çalışması garanti edilir: normal tamamlanma, yakalanan istisna, yakalanmayan istisna ya da try\u002Fexcept içindeki bir `return`\u002F`break`\u002F`continue` durumu. Özellikle koşulsuz temizlik kodu çalıştırmak için vardır.",{"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```\nNe yazdırılır?",[205,207,209,211],{"key":175,"text":206},"\"done\" yazdırılır, sonra None döner, çünkü else bloğu n'nin değerini etkilemez",{"key":178,"text":208},"ValueError fırlatılır, çünkü int(\"5\")'in try içinde başarılı olması else bloğunun çalışmasına izin vermez",{"key":181,"text":210},"Bu çalıştırmada hiçbir şey yazdırılmaz, çünkü \"done\" yalnızca int(s)'in istisna fırlattığı ve kontrolün except bloğuna atladığı dalda görünür",{"key":184,"text":212},"\"done\" yazdırılır, sonra 10 döner, çünkü istisna oluşmadığında else bloğu çalışır ve finally çalışmadan önce n'yi ikiye katlar","int(\"5\") başarılı olur, bu yüzden except atlanır ve else çalışarak n'yi 10 yapar. finally her zaman sonra çalışır ve \"done\" yazdırır. try\u002Fexcept içinde erken bir return olmadığından, akış `return n`'ye düşer ve 10 döner.",{"id":215,"topic":9,"difficulty":171,"body":216,"options":217,"correct_key":178,"explanation":226},"019f6c9d-371d-7261-b8b0-aa3676f83a0d","Bir geliştirici, eksik bir anahtara karşı korumak için `value = config[\"timeout\"]` satırını `try\u002Fexcept IndexError` içine sarıyor. \"timeout\" `config`'te bulunmadığında ne olur?",[218,220,222,224],{"key":175,"text":219},"IndexError fırlatılır, çünkü eksik bir dict anahtarına erişmek de IndexError fırlatır, bu yüzden except bloğu durumu doğru şekilde işler",{"key":178,"text":221},"KeyError fırlatılır, ki bu `except IndexError` tarafından yakalanmaz, bu yüzden istisna fonksiyon dışına yakalanmadan yayılır",{"key":181,"text":223},"Hiçbir şey fırlatılmaz; eksik bir dict anahtarı sessizce None olarak değerlendirilir",{"key":184,"text":225},"Python AttributeError fırlatır, çünkü dict erişimi anahtarın zaten bir öznitelik olarak var olmasını gerektirir","Eksik dict anahtarları IndexError değil KeyError fırlatır (IndexError, list\u002Ftuple gibi sıralı yapılarda aralık dışı indeksleme içindir). KeyError, IndexError'ın alt sınıfı olmadığından except bloğu eşleşmez ve istisna yayılır.",{"id":228,"topic":9,"difficulty":189,"body":229,"options":230,"correct_key":178,"explanation":239},"019f6c9d-371d-796d-a3ba-8ccbadf55b4a","Python'ın yerleşik istisna hiyerarşisi hakkında hangi ifade doğrudur?",[231,233,235,237],{"key":175,"text":232},"ZeroDivisionError ve ArithmeticError ilişkisiz sınıflardır; birini yakalamak diğerini asla yakalamaz",{"key":178,"text":234},"ZeroDivisionError, ArithmeticError'ın alt sınıfıdır, bu yüzden `except ArithmeticError` bir ZeroDivisionError'ı da yakalar",{"key":181,"text":236},"ArithmeticError, ZeroDivisionError'ın alt sınıfıdır",{"key":184,"text":238},"İkisi de BaseException'ın doğrudan alt sınıfıdır ve ortak bir üst sınıfları yoktur","Python'ın yerleşik istisnaları bir hiyerarşi oluşturur: ZeroDivisionError, ArithmeticError'dan miras alır, o da Exception'dan miras alır. Üst sınıf ArithmeticError'ı yakalamak, ZeroDivisionError ve OverflowError dahil tüm alt sınıflarını da yakalar.",{"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```\nNe yazdırılır?",[245,247,249,251],{"key":175,"text":246},"RuntimeError fırlatılır, çünkü çıplak bir `raise`, çağrı yığınında aktif bir istisna işleme bağlamının dışında göründüğünde açık bir argüman gerektirir",{"key":178,"text":248},"Yalnızca \"logging\" yazdırılır; çıplak `raise` istisnayı yutar, bu yüzden dıştaki except hiç tetiklenmez",{"key":181,"text":250},"Yalnızca \"caught: negative\" yazdırılır; \"logging\" bastırılır çünkü raise print etkili olmadan önce gerçekleşir",{"key":184,"text":252},"\"logging\" sonra \"caught: negative\" yazdırılır, çünkü bir except bloğu içindeki çıplak `raise`, o an işlenmekte olan istisnayı değiştirmeden yeniden fırlatır","Bir except bloğu içinde, argümansız çıplak `raise`, o an işlenmekte olan istisnayı tipini, değerini ve traceback'ini koruyarak yeniden fırlatır. Bu yüzden önce \"logging\" yazdırılır, ardından aynı ValueError dıştaki try'a yayılır, o da yakalar ve \"caught: negative\" yazdırır.",{"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":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]