如果你可以帮助我,我就会徘徊。我有一个控制台应用程序,它将字符串目录作为输入。
我想放入一个检查位置,它允许我检查用户是否放入一个空字符串我希望系统记录错误,例如ArgumentNullException。
string inputDirectory = "";
private void DoSomething(string inputDirectory)
{
try
{
Directory.CreateDirectory(inputDirectory)
}
catch (ArgumentNullException e)
{
Log.Error("program failed because the directory supplied was empty", e.Message);
}
}
代码就在这些方面。现在我遇到的问题是异常没有被抛出。相反,程序假定该目录位于项目的bin \ Debug文件夹中。如果提供的目录是“”,我不知道如何停止执行程序我需要做什么。我已经完成了if(inputDirectory == null)但这没有用。 有什么建议? 谢谢, Jetnor。
答案 0 :(得分:2)
我不知道如果要停止执行程序我需要做什么 提供的目录是“”。我已经完成了if(inputDirectory == null)但这没效果。
或者,如果您使用的是.Net 4.0或更高版本,则可以使用string.IsNullOrWhiteSpace
if(string.IsNullOrWhiteSpace(inputDirectory))
{
//invalid input
}
string.IsNullOrEmpty
和string.IsNullOrWhiteSpace
都会检查空字符串和空字符串。 string.IsNullOrWhiteSpace
还检查包含所有空格的字符串。
答案 1 :(得分:2)
也许您可以添加支票;
string inputDirectory = "";
private void DoSomething(string inputDirectory)
{
if (String.IsNullOrEmpty(inputDirectory)
throw new ArgumentNullException();
try
{
Directory.CreateDirectory(inputDirectory)
}
catch (ArgumentNullException e)
{
Log.Error("program failed because the directory supplied was empty", e.Message);
}
}
答案 2 :(得分:1)
您可以使用String.IsNullOrWhitespace 检查字符串是否为,仅为null或仅为空格。
指示指定的字符串是空,空还是仅包含空格字符。
if (String.IsNullOrWhitespace(inputDirectory))
{
throw new YourException("WhatEver");
}
答案 3 :(得分:1)
您需要使用String.IsNullOrEmpty()
来检查Empty
字符串。
方法String.IsNullOrEmpty()
检查给定的字符串是null
还是Empty
。
如果找到给定的String
null
或Empty
,则会返回true
。
步骤1:使用String.IsNullOrEmpty()方法检查inputDirectory
是空还是空。
第2步:如果方法返回true
,则使用ArgumentNullException
关键字抛出throw
。
试试这个:
string inputDirectory = "";
private void DoSomething(string inputDirectory)
{
try
{
if(String.IsNullOrEmpty(inputDirectory))
throw new ArgumentNullException();
Directory.CreateDirectory(inputDirectory)
}
catch (ArgumentNullException e)
{
Log.Error("program failed because the directory supplied was empty", e.Message);
}
}