Skip to content

Commit 72c6a43

Browse files
gnwxsumn2u
authored andcommitted
translated error-handling
1 parent 82166ff commit 72c6a43

File tree

3 files changed

+117
-0
lines changed

3 files changed

+117
-0
lines changed

tr/error-handling/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+

tr/error-handling/try...-catch.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
layout: editorial
3+
chapter: 12
4+
pageNumber: 68
5+
---
6+
7+
# Bölüm 12
8+
9+
# Error Handling (Hata Yönetimi)
10+
11+
Programlamada hatalar çeşitli nedenlerle meydana gelir; bazıları kod hatalarından, bazıları yanlış girdiden ve diğer öngörülemeyen şeylerden kaynaklanır. Bir hata oluştuğunda, kod durur ve genellikle konsolda görülen bir hata mesajı oluşturur. 
12+
13+
# try... catch
14+
15+
Kodun çalışmasını durdurmak yerine, kodu durdurmadan hataları yakalamayı sağlayan `try...catch` yapısını kullanabiliriz. `try...catch` yapısının iki ana bloğu vardır; `try` ve ardından `catch`. 
16+
17+
```javascript
18+
try {
19+
// kodun devamı
20+
} catch (err) {
21+
// hata yönetimi
22+
}
23+
```
24+
25+
İlk olarak `try` bloğundaki kod çalıştırılır. Herhangi bir hatayla karşılaşılmazsa `catch` bloğu atlanır. Bir hata oluşursa, `try` çalışması durdurulur ve kontrol sırası `catch` bloğuna taşınır. Hatanın nedeni `err` değişkeninde yakalanır.
26+
27+
```javascript
28+
try {
29+
// kodun devamı
30+
alert("Welcome to Learn JavaScript");
31+
asdk; // Hata: asdk değişkeni tanımlanmadı
32+
} catch (err) {
33+
console.log("Error has occurred");
34+
}
35+
```
36+
37+
{% hint style="warning" %}
38+
`try...catch` 'in kullanılabilmesi için kodun çalışabilir ve senkronize olması gerekir.
39+
{% endhint %}
40+
41+
Özel bir hata vermek için `throw` ifadesi kullanılabilir. Oluşan hatalar tarafından üretilen hata objesinin iki ana özelliği vardır. 
42+
43+
- **name**: Hata ismi
44+
- **message**: Hata ile ilgili açıklama mesajı 
45+
46+
{% hint style="info" %}
47+
Eğer bir `error` mesajına ihtiyacınız yoksa catch atlanabilir.
48+
{% endhint %}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
chapter: 12
3+
pageNumber: 69
4+
---
5+
6+
# try...catch...finally
7+
8+
`try...catch` 'e `finally` adında bir yapı daha ekleyebiliriz, bu kod her durumda çalışır. Yani hata olmadığında `try`den sonra ve hata durumunda bir `catch`den sonra. `try...catch...finally` için sözdizimi (_syntax_) aşağıda gösterilmiştir.
9+
10+
```javascript
11+
try {
12+
// kodu çalıştırmayı dene
13+
} catch (err) {
14+
// hataları denetle
15+
} finally {
16+
// her durumda çalıştır
17+
}
18+
```
19+
20+
Örnek bir kod örneği:
21+
22+
```javascript
23+
try {
24+
alert("try");
25+
} catch (err) {
26+
alert("catch");
27+
} finally {
28+
alert("finally");
29+
}
30+
```
31+
32+
Yukarıdaki örnekte, önce `try` bloğu çalıştırılır ve ardından herhangi bir hata olmadığı için `finally` bloğu çalıştırılır.
33+
34+
{% exercise %}
35+
Pay ve payda olmak üzere iki argüman alan ve aşağıdaki ayarları kullanarak payın paydaya bölünmesinin sonucunu döndüren bir `divideNumbers()` fonksiyonu yazın.
36+
37+
{% initial %}
38+
function divideNumbers(numerator, denominator) {
39+
try {
40+
// pay ile paydayı bölmek için `try` kodu
41+
} catch (error) {
42+
// hata mesajı yazdırma
43+
} finally {
44+
// yazdırma işlemi tamamlandı
45+
}
46+
// return result
47+
}
48+
let answer = divideNumbers(10, 2);
49+
50+
{% solution %}
51+
function divideNumbers(numerator, denominator) {
52+
let result;
53+
try {
54+
result = numerator / denominator;
55+
} catch (error) {
56+
console.error(`Error: ${error}`);
57+
} finally {
58+
console.log('Function finished executing');
59+
}
60+
return result;
61+
}
62+
let answer = divideNumbers(10, 2);
63+
{% validation %}
64+
assert(answer == 5);
65+
66+
{% context %}
67+
{% endexercise %}

0 commit comments

Comments
 (0)