• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

C++异常处理范例代码

OC/C/C++ 水墨上仙 2728次浏览

C++异常处理范例代码

// Program shows copying one text file from source location
// to any other location (destination), plus possibility of changing its name, 
// and also shows many language features in exception handling.
// This program should be run from the command prompt
 
#include<iostream>
#include<stdio.h>
#include<stdexcept>
 
using namespace std;
 
class PathError : public runtime_error
{
    public:
        PathError(const char *x) : runtime_error(x)
    {}
};
 
// function to open source file for read
 
FILE* source (char* argvs[])
{
    FILE *in;
    //open source file for read
    if((in = fopen(argvs[1],"r"))==NULL)
    {
        throw PathError("attempted to open wrong input file path");//terminate function
    }
    return in;
}
 
//function to create destination file for writting
FILE* destination (char* argvs[])
{
    FILE *out;
    //open destination file for write
    if((out = fopen(argvs[2],"w")) == NULL)
    {
        throw PathError("attempted to open wrong output file path");//terminate function
    }
    return out;
}
 
int main(int argc, char *argv[])
{
    FILE *in, *out;
    bool flag = 1;
    int temp;
    while(argc == 3)
    {
        try
        {
            in = source( argv );
            out = destination( argv );
            argc = 0;
        }
        catch(PathError& PathError)
        {
            cerr <<"\nException occured: " << PathError.what() << endl;
            return -1;
        }
 
        while(!feof(in))//test for it is not end of input file
        {
            temp = fgetc(in);//get char from (in)file
            if( temp != EOF)
            {
                fputc(temp,out);//put char to (out) file
            }
        }
        fclose(in);
        fclose(out);
        cout<<"\n\t 1 file copied.\n";
        flag = 0;
    }
    if( flag != 0 )
    {
        cerr<<"\nWrong argument list!!!\n\n";
        return -1;
    }
    return 0;
}


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明C++异常处理范例代码
喜欢 (0)
加载中……