.net 如何使用net Core控制台捕获错误

.net 如何使用net Core控制台捕获错误,.net,.net,我需要一个控制台应用程序。在以.csv结尾的文件的html页面列中,它将找到src并获得src中的链接。然后它将在此链接上发出请求。如果出现错误,它将在链接旁边打印404。如果链接正在工作,它将写入状态代码。然后它会给我这个作为输出的txt文件。我该怎么做?有人能帮忙吗 我写的几段代码: using System.Configuration; using System.Diagnostics.Tracing; using System.IO; using System.Linq; using M

我需要一个控制台应用程序。在以.csv结尾的文件的html页面列中,它将找到src并获得src中的链接。然后它将在此链接上发出请求。如果出现错误,它将在链接旁边打印404。如果链接正在工作,它将写入状态代码。然后它会给我这个作为输出的txt文件。我该怎么做?有人能帮忙吗

我写的几段代码:

using System.Configuration;
using System.Diagnostics.Tracing;
using System.IO;
using System.Linq;
using Microsoft.Extensions.Configuration;
using StreamWriter = System.IO.StreamWriter;

namespace Csv.Status
{
    class Program
    {
        private static string corrupted;
        private static string modify;
        static void Main(string[] args)
        {
            var appSettings = ConfigurationManager.AppSettings;
            corrupted = appSettings["Status"];
            modify = appSettings["Modify"];

            DirectoryInfo startDir = new DirectoryInfo(corrupted);

            RecurseFileStructure recurseFileStructure = new RecurseFileStructure();
            recurseFileStructure.TraverseDirectory(startDir);
        }

        public class RecurseFileStructure
        {
            public void TraverseDirectory(DirectoryInfo directoryInfo)
            {
                var subdirectories = directoryInfo.EnumerateDirectories();

                foreach (var subdirectory in subdirectories)
                {
                    TraverseDirectory(subdirectory);
                }

                var files = directoryInfo.EnumerateFiles();
                int counter = 0;
                foreach (var file in files)
                {
                    if (file.Name.EndsWith(".csv"))
                    {
                        counter += 1;
                        var percentage = (counter * 100) / files.Count();
                        HandleFile(file);
                        Console.WriteLine("%" + percentage + " of files is done.");
                    }
                }
            }

            void HandleFile(FileInfo file)
            {
                Console.WriteLine("{0}", file.Name);
                try
                {
                    string[] lines = File.ReadAllLines(corrupted + file.Name);
                    using (StreamWriter writer = new StreamWriter(modify + file.Name))
                    {
                        Console.WriteLine("Process has started...");
                        for (int i = 1; i < lines.Length - 1; i++)
                        {
                            if (lines[i].Contains("src="))
                            {
                                var percentage = (i * 100) / lines.Count();
                                Console.WriteLine(i + "th line was corrupted at %" + percentage + " and recovered.");
                                // işlemler burada gerçekleşecek. 
                                lines[i] = lines[i].
                            }
                            writer.WriteLine(lines[i]);
                        }
                        Console.WriteLine("Fully healed.");
                        writer.Flush();
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Exception: " + e.Message);
                }
            }
        }
    }
}



使用系统配置;
使用System.Diagnostics.Tracing;
使用System.IO;
使用System.Linq;
使用Microsoft.Extensions.Configuration;
使用StreamWriter=System.IO.StreamWriter;
名称空间Csv.Status
{
班级计划
{
私有静态字符串损坏;
私有静态字符串修改;
静态void Main(字符串[]参数)
{
var-appSettings=ConfigurationManager.appSettings;
损坏=应用设置[“状态”];
修改=应用设置[“修改”];
DirectoryInfo startDir=新的DirectoryInfo(已损坏);
RecurseFileStructure RecurseFileStructure=新的RecurseFileStructure();
递归结构.遍历目录(startDir);
}
公共类递归结构
{
公共void遍历目录(DirectoryInfo DirectoryInfo)
{
var subdirectories=directoryInfo.EnumerateDirectories();
foreach(子目录中的var子目录)
{
遍历目录(子目录);
}
var files=directoryInfo.EnumerateFiles();
int计数器=0;
foreach(文件中的var文件)
{
if(file.Name.EndsWith(“.csv”))
{
计数器+=1;
变量百分比=(计数器*100)/files.Count();
HandleFile(文件);
Console.WriteLine(“%”+文件完成百分比+”);
}
}
}
void HandleFile(FileInfo文件)
{
Console.WriteLine(“{0}”,file.Name);
尝试
{
字符串[]行=File.ReadAllLines(损坏+File.Name);
使用(StreamWriter=newstreamwriter(modify+file.Name))
{
WriteLine(“进程已启动…”);
对于(int i=1;i

致意。

对不起,我不明白这个问题:您如何才能完成您的要求?您编写的代码有什么问题,具体需要哪些帮助?只是把试捕转移到你能从中恢复过来的地方?404有什么错误吗?@Rup嗨,先生。示例src=”“。此页面具有404状态<代码>变量百分比=(i*100)/lines.Count();Console.WriteLine(i+“第行在%”+百分比+“处损坏并已恢复。”);//伊莱姆勒·布拉达·杰克勒·埃塞克。lines[i]=lines[i]。
在此代码中,404页面将被捕获,它将为我提供404状态或其他状态作为输出。