Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果picturebox为空,如何获取警告_C#_.net - Fatal编程技术网

C# 如果picturebox为空,如何获取警告

C# 如果picturebox为空,如何获取警告,c#,.net,C#,.net,如何获取此代码的警告消息 byte[] imageBt = null; FileStream fstream = new FileStream(this.textBox1.Text, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fstream); imageBt = br.ReadBytes((int)fstream.Length); 我有一个PictureBox,它是空的,每次我要单击“保存”按钮时,

如何获取此代码的警告消息

byte[] imageBt = null;
FileStream fstream = new FileStream(this.textBox1.Text, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fstream);
imageBt = br.ReadBytes((int)fstream.Length);
我有一个PictureBox,它是空的,每次我要单击“保存”按钮时,它都会显示一个错误:


从异常文本开始-此错误与pictureBox的空白无关,但您尚未指定要将数据写入的文件名,因为textBox1不包含任何文本

所以加上支票

if (string.IsNullOrEmpty(this.textBox1.Text))
{
  //do whatever you need, show your warning
}

您在此处使用的路径名为空:

new FileStream(this.textBox1.Text, FileMode.Open, FileAccess.Read)
为了防止出现这种情况,首先检查路径名是否为空:

if (string.IsNullOrWhiteSpace(this.textBox1.Text))
{
    // the input is empty, show an error?
}

基本上,如果出现错误情况,停止处理请求并使用某种错误消息将控制返回给用户。这可以像MessageBox和return一样简单

如果确实需要错误消息,请将代码包装在try-catch块中,如:

try
{
    byte[] imageBt = null;
    FileStream fstream = new FileStream(this.textBox1.Text, FileMode.Open, FileAccess.Read);
    BinaryReader br = new BinaryReader(fstream);
    imageBt = br.ReadBytes((int)fstream.Length);
}
catch(Exception error)
{
}

在处理用户输入时,您应该始终对其进行验证,以确保其有效。在这种情况下,错误告诉您textBox1.Text值为空。你应该检查一下:

if (String.IsNullOrEmpty(textBox1.Text))
{
    //input is empty, error?
}
当您尝试加载文件时,最好确保该文件存在:

if (!File.Exists(textBox1.Text))
{
    //file doesn't exist, error?
}
一如既往,可以进行额外的验证检查,例如:

如果提供的字符串是有效路径 如果提供的字符串是文件的有效路径 等
但在某个时刻,你必须划出一条界限,即有多少支票太多。

这些代码与picturebox有什么关系Filestream@VhongMarvinNavarraVillanuev睁开你的眼睛,那行代码只包含一个空文本框。请检查如何创建一个最小的、完整的,可验证的例子这是一条评论,不是回答他的问题是我如何才能得到这段代码的警告信息?这就是答案。@TheLethalCoder这是这里唯一有效的答案。其他人只检查字符串是否为空或是否只包含空格。这意味着如果我把Z:\some_virtual_folder\file.txt放在那里,它将通过检查,但会引发另一个异常…。@m.rogalski在处理路径时,你应该检查字符串是否为null或空,文件是否存在等。在这种情况下,我会说,从随机用户输入加载之前的完全验证实际上是正确的答案,目前没有一个答案显示这一点。问题的答案是检查是否有空字符串,尽管这是错误消息显示的内容。盲目捕捉任何随机异常都不是解决办法。将异常用于逻辑流是一个众所周知的坏主意。条件可以很容易地检查。看起来条件中有不必要的逻辑否定。@AndyKorneyev:捕捉得好,谢谢!我想出于某种原因,我真的习惯了相反的方式。你不应该使用File.Exists来确定文件的路径是否有效。这是错误的,因为用户/应用程序的权限。请在msdn.@m.rogalski上阅读此信息,如果我记得正确的话。如果用户没有访问该文件的权限,Exists将返回false,我认为这是预期行为。我不明白你的意思。你说我用它来确定文件是否存在,但你说你并不真正关心文件是否存在,而是用户是否有权访问它。这毫无意义,@m.rogalski OP正在加载文件,如果文件存在并且用户有权读取文件,file.Exists返回true,否则返回false。这就是我之前评论的内容。Exists是检查您当时是否可以读取文件的完美方法,尽管它确实有一些争用条件。我真的很难理解你的观点。