为什么不允许在没有{}的情况下使用try-catch语句?

Але*_* Д. 10 c#

为什么我不能使用这样的代码?

1

int i = 0;

try i = int.Parse("qwerty");
catch throw;
Run Code Online (Sandbox Code Playgroud)

2

try i = int.Parse("qwerty");
catch;
finally Log.Write("error");
Run Code Online (Sandbox Code Playgroud)

应该像这样写

1

int i = 0;

try { i = int.Parse("qwerty"); } catch { throw; }
Run Code Online (Sandbox Code Playgroud)

2

try { i = int.Parse("qwerty");}
catch {}
finally {Log.Write("error");}
Run Code Online (Sandbox Code Playgroud)

PS:

我可以在没有{}的情况下使用if-else语句.我为什么要用try-catch(-finally)语句来使用它们?有什么有意义的理由吗?

是不是因为有些人认为代码难以阅读?

几个月前,我在俄罗斯编程论坛上提出这个问题,但我没有得到满意的答复......

Ode*_*ded 12

这就是语言设计师所决定的.

在任何一种情况下,即使是一条线路if也是危险的 - 人们会添加线路,期望它们被包含在内if,当然,因为它们不在{},但它们不是.