返回flag
//修改前
namespace CleanCSharp.Errors.Dirty
{
public class SomeClass
{
public int DoSomeProcess(int? id)
{
if (id == null)
{
return -; // null id
}
string data = LoadData();
if (string.IsNullOrWhiteSpace(data))
{
return -; // data is corrupt
}
ProcessData(data); return ; // no error, all good
}
private string LoadData()
{
return "some data";
}
private void ProcessData(string data)
{
// do something
}
}
}
修改前,调用
namespace CleanCSharp.Errors.Dirty
{
public class ConsumerOfSomeClass
{
public void Consume()
{
var sc = new SomeClass();
const int idToProcess = ;
int returnCode = sc.DoSomeProcess(idToProcess);
switch (returnCode)
{
case -: // null id
// do something break;
case -: // corrupt data
// do something
break;
case : // no error
Save(idToProcess);
break;
}
}
private void Save(int id)
{
// save
}
}
}
//修改后
using System;
using System.IO;
namespace CleanCSharp.Errors.Clean
{
public class SomeClass
{
public void DoSomeProcess(int? id)
{
if (id == null)
{
throw new ArgumentNullException("id");
}
string data = LoadData();
ProcessData(data);
}
private string LoadData()
{
var demoData = "";
if (string.IsNullOrWhiteSpace(demoData))
{
throw new
InvalidDataException(
"The data stream contains no data.");
}
return demoData;
}
private void ProcessData(string data)
{
// do something
}
}
}
//修改后
using System;
using System.Diagnostics;
using System.IO;
namespace CleanCSharp.Errors.Clean
{
public class ConsumerOfSomeClass
{
public void Consume()
{
var sc = new SomeClass();
const int idToProcess = ;
try
{
sc.DoSomeProcess(idToProcess);
}
catch (ArgumentNullException ex)
{
// null id // do something such as logging
// if cannot respond to this
// exception propagate up the
// call stack
throw;
// Notice the throw is not: throw ex;
}
catch (InvalidDataException ex)
{
// bad data
// do something
throw;
}
catch (Exception ex)
{
// any other exceptions that may occur
// do something
throw;
}
Save(idToProcess);
}
private void Save(int id)
{
// save
}
} }
返回flag的更多相关文章
- a标签根据js返回值判断页面是否跳转
a标签再跳转之前先判断是否符合条件,符合可以跳转,不符合不可以跳转. 自己遇到的问题是:在js方法中根据条件就return结果,但是不行. 原因是:在js方法中return后不会结束整个js方法(ac ...
- 1-File类的使用
package com.io; import java.io.File; import java.io.FileInputStream; import java.io.IOException; imp ...
- C++find函数
头文件 #include <algorithm> 函数实现 template<class InputIterator, class T> InputIterator find ...
- ASP代码审计一枚
<% On Error Resume Next dim name, pass, sql, action set conn = server.CreateObject("ADODB.Co ...
- POJ1753Flip Game(DFS + 枚举)
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37050 Accepted: 16122 Descr ...
- SSCTF-Final-Re-Play
SSCTF-Final-Re-Play 比赛时花了一晚上搞定了,结果写脚本的时候发送的内容忘记base64加密然后异或8了,手动测试的时候当然是这样做了,写脚本的时候脑抽了.这个题只有forx做出来 ...
- [rctf](web)rcdn 解题分析,知识点总结
比赛平台关闭了,没有截图,见谅. 解题思路流程: 分析网站结构,看源码,元素审计.发现以下信息. 要得到flag要获得一个pro cdn pro 子域名长度为3到6个字符 存在一个提交ticke页 ...
- Django contrib Comments 评论模块详解
老版本的Django中自带一个评论框架.但是从1.6版本后,该框架独立出去了,也就是本文的评论插件. 这个插件可给models附加评论,因此常被用于为博客文章.图片.书籍章节或其它任何东西添加评论. ...
- CTF---Web入门第六题 因缺思汀的绕过
因缺思汀的绕过分值:20 来源: pcat 难度:中 参与人数:6479人 Get Flag:2002人 答题人数:2197人 解题通过率:91% 访问解题链接去访问题目,可以进行答题.根据web题一 ...
随机推荐
- Java 同步器
CyclicBarrier是什么 CyclicBarrier也叫同步屏障,在JDK1.5被引入,可以让一组线程达到一个屏障时被阻塞,直到最后一个线程达到屏障时,所以被阻塞的线程才能继续执行.Cycli ...
- STDIN_FILENO vs stdin
数据类型不一致:stdin类型为 FILE*STDIN_FILENO类型为 int 使用stdin的函数主要有:fread.fwrite.fclose等,基本上都以f开头使用STDIN_FILENO的 ...
- Apple Watch 会再一次改变世界么?
这一次苹果发布会,苹果推出了Apple Watch.他会像iPhone系列一样,去改变大家对于手表的理解么?会像iPhone一样受到大家的追捧么? 我觉得第一代的产品只可能是试探性的,真正能去引爆市场 ...
- 加速nginx: 开启gzip
nginx 是一个高性能的 Web 服务器,之前也写过一些关于 nginx 的文章.为了提高博客的响应速度,可以从设置 nginx 的 gzip 和缓存这2方面入手.为字体开启 gzip 和缓存能大大 ...
- mysql优化 慢查询(一)
1.显示慢查询的一些参数的命令:show variables like '%slow%';结果如图
- HTTP标头信息
HTTP头信息头信息由“键:值”组成.它们描述客户端或者服务器的属性.被传输的资源以及应该实现连接. 四种不同类型的头标 通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联 ...
- numpy和matplotlib绘制直方图
使用 Matplotlib Matplotlib 中有直方图绘制函数:matplotlib.pyplot.hist()它可以直接统计并绘制直方图.你应该使用函数 calcHist() 或 np.his ...
- spring中ApplicationContext
1 spring 容器应用上下文:ApplicationContext 主要的实现类是 ClassPathXmlApplicationContext 和 FileSystemXmlApplicatio ...
- 云中的机器学习:FPGA 上的深度神经网络
人工智能正在经历一场变革,这要得益于机器学习的快速进步.在机器学习领域,人们正对一类名为“深度学习”算法产生浓厚的兴趣,因为这类算法具有出色的大数据集性能.在深度学习中,机器可以在监督或不受监督的方式 ...
- nginx 反向代理 配置 https 实现http https同时存在 经测试 支持location 规则
server { listen ssl; #监听443端口 server_name www.app01.com; ssl on; #启用ssl加密 ssl_certificate /etc/cert/ ...