c#异常的处理

public static void DownIMG(String uri, String path)

        {

            WebResponse response = null;

            Stream reader = null;

            FileStream writer = null;

            try

            {

                WebRequest request = WebRequest.Create(uri);

                request.Timeout = Timeout.Infinite;

                response = request.GetResponse();



                String type = response.ContentType;

                if (type.StartsWith("image/png"))

                {

                    path += ".png";

                }

                else

                {

                    path += ".jpg";

                }



                reader = response.GetResponseStream();

                writer = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);

                byte[] buff = new byte[512];

                int c = 0; //实际读取的字节数

                while ((c = reader.Read(buff, 0, buff.Length)) > 0)

                {

                    writer.Write(buff, 0, c);

                }

            }

            catch (Exception e)

            {

                throw e;//在这里抛出异常是可以的,finally里面的代码依然会执行,会先运行到这里,再运行finally,再运行调用该方法的try

            }

            finally

            {

                if (writer != null)

                {

                    writer.Close();

                    writer.Dispose();

                }

                if (reader != null)

                {

                    reader.Close();

                    reader.Dispose();

                }

                if (response != null)

                {

                    response.Close();

                }

            }

        }

 

你可能感兴趣的:(C#)