首页 > 解决方案 > 使用在 try 中声明的变量 使用 catch 中的值

问题描述

长版:

我被要求开发一个程序,将目录中的文件写入数据库。此外,该目录中更深层次的文件也需要写入数据库。在那里它应该显示为两列。一个显示路径,另一个显示文件名+扩展名。我编写了一个在测试环境中运行良好的程序。但是,在实时环境中,我没有打开我想要的每个目录的所有权利和权限。此外,由于一些迁移,一些目录的路径名太长,无法再打开。所以他们告诉我将这些目录写入数据库,而不是在 file_name 列中显示文件名和扩展名,而是用“无访问权限”填充那个。但是,为了避免尝试打开“坏”目录,我使用了 try/catch 模块。现在我需要一个在 try 中声明的变量并在 catch 中使用它。无论如何这是可能的吗?我将发布部分代码,以便您可以看到我现在拥有的内容。

精简版:

我想获取在 try 模块中声明的变量并在 catch 模块中使用它。有没有办法做到这一点?

    public HashSet<String> getFolders(Path path, HashSet<String> folders)
    {                
    try
        {
            foreach (String folder in Directory.GetDirectories(path.getOrigineleMap()))
            {
                Path p = path;
                p.setOrigineleMap(folder);
                folders.Add(folder);
                getFolders(p,folders);
            }
        }
        catch (System.Exception e)
        {
            Console.WriteLine("No access to a folder");
            writeToDatabase(path, folder + @"\No access");   //path is a variable of the type Path, and the String should be the entire
        }                                                    //path from the directory + \No Access
        return folders;
    }

标签: c#try-catch

解决方案


推荐阅读