猿问

以下是程序中的一段代码,程序能正常运行,catch不是找错吗,怎么这里面catch在搞什么啊?

try
{
smallfoldername = Server.MapPath(ConfigurationManager.AppSettings["SmallPath"]);
bigfoldername = Server.MapPath(ConfigurationManager.AppSettings["NormalPath"]);
}
catch
{
smallfoldername = Server.MapPath("./Photo/SmallPics/");
bigfoldername = Server.MapPath("./Photo/NormalPics/");
}

米琪卡哇伊
浏览 216回答 3
3回答

慕婉清6462132

在try...catch块中,设定了两个变量,变量需要读取配置文件中两个键的值,当读取发生错误的时候就在catch中将两个变量设默认值。这样是可以的,有时候在catch中出了要把错误写出来之外,也要写一些以防程序崩溃的代码,就像这个代码,如果不赋这两个值也许在程序后方会让程序崩溃。

DIEA

这么写根本就不是try catch的正常用法.仅仅目前的功能完全可以去掉可以用smallfoldername = Server.MapPath(ConfigurationManager.AppSettings["SmallPath"]);if(String.IsNullOrEmpty(smallfoldername))smallfoldername = Server.MapPath("./Photo/SmallPics/");bigfoldername = Server.MapPath(ConfigurationManager.AppSettings["NormalPath"]);if(String.IsNullOrEmpty(bigfoldername))bigfoldername = Server.MapPath("./Photo/NormalPics/");

慕尼黑的夜晚无繁华

在C#中catch后是可以不写像(Exception e)这种的,上面代码的意思就是,当try块出问题后,执行catch块中的代码。
随时随地看视频慕课网APP

相关分类

Java
SQL Server
我要回答