c# Try/Catch语句,我这样做是正确的吗?

  • 本文关键字:这样做 Try Catch 语句 c#
  • 更新时间 :
  • 英文 :

using System;
namespace Something
{
class MainProgram
{
public static void Main(string[] args)
{
try
{
Console.WriteLine("Hello? am I working?")
}
catch
{
Console.WriteLine("Nah I ain't working");
}
}
}
}

我只是在摸索c#,我想尝试错误检查之类的。这是代码和控制台。Catch{}只是不做语法错误吗?

抓只捕获运行时错误。这可以看出,你指定了它将捕获的内容,并且在catch中没有指定表示语法错误的类型。

如果存在语法错误,则首先没有程序运行catch。语法错误是由编译器在程序存在之前发出的,然后运行,这是因为c#是一种编译语言。编辑器或IDE也可以给您提前提示,但它们也不会运行您的程序来发出这些错误。

是的,你可以使用catch而不指定Exception的类型,但这只是捕获所有源自Exception的错误的快捷方式所以它是catch (Exception e)的快捷方式

在其他语言中,例如JavaScript,这是一种解释型语言,解释器(与编译器相反)运行JavaScript代码,直到发现错误为止。所以你可能有部分运行程序有语法错误。


JavaScript示例,只是为了好玩:

try { eval('func);'); } catch (e) { console.log('The error is a syntax error: ', e instanceof SyntaxError); }

这将输出"错误是语法错误:true"因为它试图运行语法错误的func);。SyntaxError实际上是在运行时发出的(记住,这是JavaScript而不是c#)。

Try/Catch不是针对SyntaxErrors,而是针对运行时错误。你可以做

try{
// Code here
} catch(Exception e){
// log the exception
} finally{
// code here will run no matter what (with or without errors)
}

可以看到,catch可以选择性地接受一个Exception参数,该参数可以帮助您更好地记录它。在您的例子中,您将捕获所有异常,但您没有对异常的引用。

Try catch通常用于从文件/数据库读取,发出web请求等情况。所有这些都可能由于外部原因而失败,但它们在语法上是正确的。

这个问题已经有答案了,但是为了给你信心,其他的都是正确的

你通常会尝试做一些事情例如简单地调用一个方法或做一些复杂的逻辑你想确保不会退出所以你会写:

try{XYZ} catch(Exception e){}

如果你知道你将要遇到的异常类型,无论是argumentoutorange异常还是nullpointerexception,或者其他类似的类型,你可以改变catch,把重点放在这种类型上。

一般的异常类型是好的锻炼问题当你不知道问题是什么但我要说找出异常,满足你对最好的解决这个问题。

对不起,这是非常冗长的,我只是认为理解更重要,因为你是新来的。

相关内容