从Net :: HTTP中拯救异常的最佳方法是什么?
抛出的异常的Ruby的描述socket.c,如Errno::ETIMEDOUT,Errno::ECONNRESET和Errno::ECONNREFUSED.所有这些的基类是SystemCallError,但编写如下代码感觉很奇怪,因为SystemCallError似乎远远没有HTTP打电话:
begin
response = Net::HTTP.get_response(uri)
response.code == "200"
rescue SystemCallError
false
end
Run Code Online (Sandbox Code Playgroud)
只有我吗?除了修复Net::HTTP以处理Errno可能弹出并将其封装在父级中的异常之外,是否有更好的方法来处理此问题HttpRequestException?
我有一个Color类,它包含颜色的红色,绿色和蓝色通道的值.类构造函数允许您通过指定三个通道的值来创建新颜色.但是,为方便起见,我还想为程序员提供一些"预制"颜色.例如,而不是像
DrawRectangle(new Color(1, 0, 0));
Run Code Online (Sandbox Code Playgroud)
你可以说
DrawRectangle(Color.Red);
Run Code Online (Sandbox Code Playgroud)
Color.Red是Color类中的Color实例.如何在Color类中声明这些Color实例?如果有这种技术的名称,我想知道它,因为当我在网上寻求帮助时,我不知道要使用哪些搜索条件.
目前我的aspx页面包含
<input type="text" name="openid_username" />
<input type="text" name="openid_identifier" />
Run Code Online (Sandbox Code Playgroud)
但现在我想替换它们
<asp:TextBox ID="openid_username" runat="server"></asp:TextBox>
<asp:TextBox ID="openid_identifier" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
那么我应该如何修改以下JQUERY,以反映输入框到文本框的替换?
var $usr = $this.find('input[name=openid_username]');
var $id = $this.find('input[name=openid_identifier]');
Run Code Online (Sandbox Code Playgroud) 我的entityManager persist()从序列获取id并将其放到我的Image对象中,但Image对象本身没有显示在数据库中.EntityManager.flush()给出了一个错误,所以我不能这样提交.这是我的代码.
@Repository
public class ImageDaoImpl extends BaseDao implements ImageDao {
@PersistenceContext
protected EntityManager entityManager;
@Override
@Transactional
public void create(Image image) {
JpaTemplate jpaTemplate = getJpaTemplate(entityManager);
jpaTemplate.persist(image);
}
Run Code Online (Sandbox Code Playgroud)
@Repository
public class BaseDao {
private JpaTemplate jpaTemplate;
public JpaTemplate getJpaTemplate(EntityManager entityManager){
if(jpaTemplate == null)
jpaTemplate = new JpaTemplate(entityManager);
return jpaTemplate;
}
Run Code Online (Sandbox Code Playgroud)
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:dataSource-ref="dataSource">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="generateDdl" value="true" />
<property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect" />
</bean>
</property>
<property name="persistenceUnitName" value="sample"></property>
</bean>
<!-- DataSource …Run Code Online (Sandbox Code Playgroud) 嘿伙计们,最近我正在学习一些Java,当我被教导一种实现控制器类的方法时,它的重要性是将请求重定向到一个Action,它执行指定的工作.这就是我学到的方式;
@Override
protected void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
String clazz = req.getRequestURI().replaceAll(req.getContextPath() + "/", "").replaceAll(".java", "");
((Action)Class.forName("com.myProject.actions." + clazz).newInstance()).execute(req, res);
} catch (Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我知道WebForms也适用于HANDLERS,这是一种行为.例如,每个.aspx页面都继承自Page对象,该对象是该指定页面的处理程序.
我无法弄清楚的是,哪个类首先获取请求并将其转换为指定的操作(页面处理程序)?它是WebForms功能(实现)还是IIS的可接受性?那么,哪个类代表WebForms的主控制器?
非常感谢你.
一些前言:我是一名计算机工程专业的学生,经过3个学期的Java(直到数据结构),在C学习第一堂课.这个问题与家庭作业有关,但是为我解决了一些步骤.
我有一个输入文件,我读入内存,它存储在char [9] [500].我读入最多500个最大长度为8的字符串.我试图使用stdlib内置的qsort()函数对这个数组进行排序,并且有一些内存错误.
重要的代码片段:
char data[4][500][60];
char debug[500][9];
size_t count = 0;
/* initialize file, open for reading */
FILE* pUserlog;
pUserlog = fopen("userlog","r");
while(!feof(pUserlog))
{
fscanf(pUserlog, "%9s %8s %16s",debug[count], data[1][count], data[2][count]);
fgets(data[3][count], 60, pUserlog);
count++;
}
Run Code Online (Sandbox Code Playgroud)
此部分将数据读入阵列.这部分感兴趣的数组是"debug".这是上面指定的数组.这是我的qsort比较函数:
int compare(const void* a, const void* b)
{
const char **ia = (const char **)a;
const char **ib = (const char **)b;
puts("I'm in compare!");
return strncmp(*ia, *ib,8);
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试调用qsort:
size_t debug_len = sizeof(debug)/sizeof(char*);
printf("debug len: %d, count: %d, sizeof(char*): %d\n",debug_len,count,sizeof(char*)); …Run Code Online (Sandbox Code Playgroud) 在Javascript中有一种称为俄罗斯娃娃模式的模式(这也可称为"一次性").基本上,它是一个在某些时候取代另一个的功能.
简单的例子:
var func = function(){
func = function(){ console.log("subsequent calls call this...");};
console.log("first call");
}
Run Code Online (Sandbox Code Playgroud)
因此,第一次调用func时它将输出"first call",然后下一个(以及随后的时间)打印"后续调用调用此...".(这在Scheme中很容易做到,例如)
我一直在困惑如何在Ocaml中做到这一点?
编辑:我提出的一个解决方案:
let rec func = ref( fun () -> func := ( fun () -> Printf.printf("subsequent..\n"));Printf.printf("First..\n"));;
Run Code Online (Sandbox Code Playgroud)
被称为:!func();;
有趣的是,如果我没有在定义中包含'rec',它从不调用后续函数......它总是打印'First ...'.
当我同时执行多个测试时,我不想让Firefox浏览器窗口保持可见..我可以使用它来最小化它,selenium.minimizeWindow()但我不想这样做.
有没有办法隐藏Firefox窗口?我正在使用FireFox WebDriver.
我正在尝试创建一个用于Google Gson的通用类.我创造了这门课GsonJsonConverterImplementation<T>.该类具有以下方法:
public T deserialize(String jsonString) {
GsonBuilder builder = new GsonBuilder();
builder.setDateFormat("MM/dd/yy HH:mm:ss");
Gson gson = builder.create();
return gson.fromJson(jsonString, T); // T.class etc. what goes here
}
Run Code Online (Sandbox Code Playgroud)
目标是这个方法应该能够使用我设置的GsonJsonConverterImplementation所使用的任何类型.不幸的是,gson.fromJson(jsonString, T)它不起作用,也没有用来T.class代替T.我确信这个问题源于我对Java泛型类型缺乏了解.在Gson中使用泛型的正确方法是什么?
编辑
使用Kris的答案我会认为这应该有效.不幸的是,clazz不能以这种方式使用并导致编译器错误.使用Gson的集合和泛型类型有哪些选择?
public List<T> deserializeList(String jsonString, Class<T> clazz) {
GsonBuilder builder = new GsonBuilder();
builder.setDateFormat("MM/dd/yy HH:mm:ss");
Gson gson = builder.create();
Type listType = new TypeToken<clazz>(){}.getType(); // compiler error
return gson.fromJson(jsonString, listType);
}
Run Code Online (Sandbox Code Playgroud) 我尝试使用JSON解码来获取youtube API提要.但是,当我粘贴JSON结果时,http://www.jsonlint.com/我注意到了类似的东西
"media$group": {
"media$category": [
Run Code Online (Sandbox Code Playgroud)
不幸的是,某些符号被php拒绝.这是我的代码,我试图删除这个$符号,但可能没有成功.我该如何解决这个问题?
$url = 'http://gdata.youtube.com/feeds/api/videosq=football&orderby=published&v=2&alt=json';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $url);
$body1 = curl_exec($ch);
$body = str_replace('$','', $body1);
curl_close($ch);
$data = json_decode($body);
foreach ($data->feed->entry as $result) {
...
}
Run Code Online (Sandbox Code Playgroud)