c++ throw异常(学习)
#include <iostream>
#include <stdio.h>
using namespace std;
void my_copy(const char* src_file, const char* dest_file)
{
FILE *in_file, *out_file;
in_file = fopen(src_file, "rb");
if (in_file == NULL)
{
throw 1;
}
out_file = fopen(dest_file, "wb");
if (out_file == NULL)
{
throw 2;
}
char rec[1024];
size_t bytes_in, bytes_out;
while ((bytes_in = fread(rec, 1, 1024, in_file))>0)
{
bytes_out = fwrite(rec, 1, bytes_in, out_file);
if (bytes_in != bytes_out)
{
throw 3;
}
}
fflush(out_file);
fclose(out_file);
fclose(in_file);
}
int main()
{
try
{
my_copy("D:\\File\\1.txt", "D:\\File\\20190608\\1.txt");
}
catch (int e)
{
switch (e)
{
case 1:
printf("打开源文件出错\n");
break;
case 2:
printf("打开目标文件出错\n");
break;
case 3:
printf("拷贝文件出错\n");
break;
default:
printf("未知错误\n");
break;
}
}
system("pause");
return 0;
}
c++ throw异常(学习)的更多相关文章
- “全栈2019”22篇Java异常学习资料及总结
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"22篇Ja ...
- 2.Java异常学习
1.Java异常的概念 异常的例子 1.除法就是一个需要捕获异常的例子,除数又可能是0 异常处理的基本流程如下 一旦发生异常,就使得程序不按照原来的流程继续的运行下去 a.程序抛出异常 try{ th ...
- 异常学习笔记+打包+doc该软件包编译
jvm调用默认的异常处理机制printStackTrace办法 欲了解更多异常处理.问题 捕获异常代码块出现继承关系 应该把被继承的异常放在子类异常块的后面 watermark/2 ...
- Java异常学习总结一
Java中的异常 定义 异常(Exception)就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序. 常见类型举例 所需文件找不到(ClassNotFoundException) 网 ...
- c++异常——学习笔记
1.异常 throw抛出字符串 最好的是:throw抛出对象. catch(...){} 2.使用标准异常类 #include<new> bitset 自己写一个异常 设计自己异常类 堆栈 ...
- Python错误和异常学习
一:错误解释 1.语法错误:代码不符合解释器或者编译器语法 2.逻辑错误:不完整或者不合法输入或者计算出现问题 代码运行前的语法或者逻辑错误,语法错误在执行前修改,逻辑错误无法修改 二:异常 执行过程 ...
- Java异常学习总结二
异常的处理方式 方式一:捕获异常(try-catch-finally) 捕获异常是通过三个关键词来实现的:try-catch-finally.用try来执行一段程序,如果出现异常,系统抛出一个异常,可 ...
- Python错误和异常 学习笔记
错误和异常概念 错误: 1.语法错误:代码不符合解释器或者编译器语法 2.逻辑错误:不完整或者不合法输入或者计算出现问题 异常:执行过程中出现万体导致程序无法执行 1.程序遇到 ...
- Hibernate search与Lucene包异常学习心得
最近使用了了一下Hibernate Search这个组件 这个组件是对域模型进行全文检索,在全文检索的底层实现上使用了Lucene技术 在进行小测试的时候费了很大的力气去搞定包的问题 我直接通过实例 ...
随机推荐
- windows 下sublime text 3 配置python 环境详解
这我们的环境已经安装了python 3.7.1解释器和sublime text 3 编辑器 一.package control 安装 首先我们打开sublime text 3 ——>Tools— ...
- OpenGL ES on iOS --- 统一变量(Uniform)和统一变量块(UBO)
简介 Uniform是一种从CPU中的应用向GPU中的着色器发送数据的方式,但uniform和顶点属性有些不同. 首先,uniform是全局的(Global).全局意味着uniform变量必须在每个着 ...
- vue sample
<template> <section> <header class="top_tips"> <span class="num_ ...
- 二分法:从一个只包含数字的list中查找某个数
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2017/4/10 19:03 # @Author : MnCu # @Site : # ...
- [唐胡璐]Java操作Sql Server 2008数据库
下载Microsoft JDBC Driver for SQL Server 直接去官网下载即可: 下载解压文件,得到sqljdbc.jar和sqljdbc4.jar。如果你使用的是jre1.7版本, ...
- python utf8
1. # coding:utf-8 作用是定义源代码的编码. 如果没有定义, 此源码中是不可以包含中文字符串的.PEP 0263 -- Defining Python Source Code Enco ...
- iar8.32版本关于cmsis的说明
平台是cubemx5.3 keil5.26 带freertos,使用iar8.32,在上图中的use cmsis 打勾与否都能编译通过.
- SVG矢量绘图 path路径详解(贝塞尔曲线及平滑)
以二次贝塞尔曲线的公式为例: js函数: //p0.p1.p2三个点,其中p0为起点,p2为终点,p1为控制点 //它们的坐标用数组表示[x,y] //t的范围是0-1 function qBerzi ...
- BZOJ 3672[NOI2014]购票(树链剖分+线段树维护凸包+斜率优化) + BZOJ 2402 陶陶的难题II (树链剖分+线段树维护凸包+分数规划+斜率优化)
前言 刚开始看着两道题感觉头皮发麻,后来看看题解,发现挺好理解,只是代码有点长. BZOJ 3672[NOI2014]购票 中文题面,题意略: BZOJ 3672[NOI2014]购票 设f(i)f( ...
- Linux 安装python3.7
首先需要安装依赖 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-dev ...