如果我知道一个emacs命令名称,说"goto-line"; 如果我想查询是否有任何键序列绑定到此命令,该怎么办?
反之亦然,给定一个键序列,我该如何找到它的命令名?
我之前从未做过任何严肃的Java编码,但我根据现有技能(Delphi和C#)学习了语法,库和概念.我很难理解的一件事是,我已经看到了这么多代码,在printStackTrace
这样的情况下默默地消耗异常:
public void process() {
try {
System.out.println("test");
} catch(Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
在我遇到的几乎所有Java文章和项目中都有类似的代码.根据我的知识,这是非常糟糕的.几乎总是应该将异常转发到外部上下文,如下所示:
public void process() {
try {
System.out.println("test");
} catch(Exception e) {
e.printStackTrace();
throw new AssertionError(e);
}
}
Run Code Online (Sandbox Code Playgroud)
大多数情况下,异常最终应该在属于底层框架的最外层循环中处理(例如Java Swing).为什么Java世界中的代码看起来像这样的规范?我很困惑.
根据我的背景,我宁愿完全删除printStackTrace .我会简单地重新抛出一个未处理的aka RuntimeException
(或更好的AssertionError
),然后捕获并在最合适的位置记录它:框架最外层循环.
public void process() {
try {
System.out.println("test");
} catch(Exception e) {
throw new AssertionError(e);
}
}
Run Code Online (Sandbox Code Playgroud) 我已经用几十种语言编程了20年,但我无法理解"FOR"在windows cmd shell批处理文件中是如何工作的,无论我怎么努力.我读
http://www.ss64.com/nt/for.html
互联网上的其他一些文章,但仍然混淆,无法完成任何事情.
任何人都可以简单地解释一下"FOR"的工作原理吗?
对于更具体的问题,我如何遍历%PATH%变量中的每个路径?我试过了
rem showpathenv.bat
for /f "delims=;" %%g in ("%PATH%") do echo %%g
Run Code Online (Sandbox Code Playgroud)
这只显示了第一条路径,而不是所有路径.为什么?我做错了什么?
从这个简单的HTML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Hello</title>
<style type="text/css" media="screen">
.t1 {
padding: 0px;
margin: 0px;
}
.popup {
display: inline-block;
position: relative;
width: 0px;
padding: 0px;
margin-left: -0.5em;
}
.hint {
position: absolute;
z-index: 1;
width: 20em;
background-color: white;
border: 1px solid green;
padding: 0.5em;
margin-top: 1em;
}
.list {
padding: 0px;
padding-left: 1em;
margin: 0px;
}
</style>
</head>
<body>
<!-- properly layout -->
<div style="height: 10em;">
<span class="t1">MyObject …
Run Code Online (Sandbox Code Playgroud) 我现在正在从参考手册和LISP Book中的Common Lisp 学习Emacs Lisp .
来自Common Lisp的书
>> (setf power-of-two
(let ((previous-power-of-two 1))
#'(lambda ()
(setf previous-power-of-two
(* previous-power-of-two 2)))))
>> (funcall power-of-two)
2
>> (funcall power-of-two)
4
>> (funcall power-of-two)
8
Run Code Online (Sandbox Code Playgroud)
由于其动态绑定行为,该函数在Emacs Lisp中不起作用.
我想知道是否可以在不引入全局变量的情况下在Emacs Lisp中实现相同的功能?
我知道 !读取STXL.CLUSTD的"正确"方法是通过SAP ABAP功能.但是对不起,我们因性能问题而受苦受难.我们已经决定直接进入数据库(Oracle),我们没有任何计划可以恢复我们的决定,因为到目前为止一切都好得多.
但是,我们遇到过这个问题.STXL.CLUSTD字段中的文本以难以理解的格式存储.我们无法通过谷歌找到有关其编码格式的任何信息.任何人都可以提示我如何解码STXL.CLUSTD中的文本?
谢谢
我偶然发现了这张幻灯片:http://www.slideshare.net/stoyan/javascript-patterns#postComment
在第35页:
选项5 +超级+构造函数重置
function inherit(C, P) {
var F = function(){};
F.prototype = P.prototype;
C.prototype = new F();
C.uber = P.prototype;
C.prototype.constructor = C; // WHY ???
}
Run Code Online (Sandbox Code Playgroud)
我不明白.任何人都可以解释一下最后一行是什么?
C.prototype.constructor = C; // WHY ???
Run Code Online (Sandbox Code Playgroud)
谢谢
我想我已经遇到过这个要求十几次了.但我永远找不到令人满意的解决方案.例如,有一个字符串集合,我想通过一个只允许普通字符串的通道序列化(到磁盘或通过网络).我几乎总是最终使用"分裂"和"加入"与荒谬的分隔符
"::: == - == :::".
像这样:
public static string encode(System.Collections.Generic.List<string> data)
{
return string.Join(" :::==--==::: ", data.ToArray());
}
public static string[] decode(string encoded)
{
return encoded.Split(new string[] { " :::==--==::: " }, StringSplitOptions.None);
}
Run Code Online (Sandbox Code Playgroud)
但这个简单的解决方案显然存在一些缺陷.该字符串不能包含分隔符字符串.因此,编码的字符串不能再重新编码.
AFAIK,全面的解决方案应该包括在编码时转义分隔符并在解码时取消转换.虽然问题听起来很简单,但我相信完整的解决方案可能会占用大量代码.我想知道是否有任何技巧允许我在很少的代码行中构建编码器和解码器?
好的,让我们从这个非常简单的按钮点击方法开始吧
private void button1_Click(object sender, EventArgs e)
{
int counter = 1;
List<int> items = new int[] { 1, 2, 3 }.ToList();
List<int>.Enumerator enm = items.GetEnumerator();
// 1
if (!enm.MoveNext())
throw new Exception("Unexpected end of list");
if (enm.Current != counter)
throw new Exception(String.Format("Expect {0} but actual {1}", counter, enm.Current));
counter++;
// 2
if (!enm.MoveNext())
throw new Exception("Unexpected end of list");
if (enm.Current != counter)
throw new Exception(String.Format("Expect {0} but actual {1}", counter, enm.Current));
counter++;
//3
if (!enm.MoveNext())
throw new Exception("Unexpected …
Run Code Online (Sandbox Code Playgroud) 我有一些流程需要很长的处理时间,客户不需要立即响应。我尝试过下面的代码但没有成功。
[HttpPost, Route("run")]
public async Task Run()
{
_ = this.LongProcess().ConfigureAwait(false);
return await Task.CompletedTask;
}
Run Code Online (Sandbox Code Playgroud)
在我的 LongProces 完成返回给客户端之前,该服务仍然需要一些时间。如何让Run方法及时返回给客户端?
.NET有一个类似于Delphi的EAbort的异常吗?
目前,我定义了自己的"AbortProcess"继承Exception.与忽略"AbortProcess"的My.Application.UnhandledException处理程序一起,我仍然想知道.NET中是否存在类似的机制.
Class AbortProcess
Inherits System.Exception
End Class
Sub Abort()
Throw New AbortProcess()
End Sub
Sub AppDomain_UnhandledException(ByVal sender As Object, ByVal e As ApplicationServices.UnhandledExceptionEventArgs)
If TypeOf e.Exception Is AbortProcess Then
e.ExitApplication = False
End If
End Sub
Sub PerformActions()
Action1()
If Not Action2() Then
Abort()
End If
Action3()
...
End Sub
Run Code Online (Sandbox Code Playgroud)
典型的.NET开发人员如何处理这个用例?
更新:
不幸的是,由于某些原因,一些人在没有发表任何评论的情况下投票支持这个问题.我能弄清楚的唯一原因是他们可能认为异常永远不应该被用来控制程序流程; 我倾向于同意这一点.但是,我最近研究了ANTLR并发现它们确实使用自定义Exception(RecognitionException)作为控制流构造.结合Python的StopIteration用法,我相信使用Exception作为控制流构造实际上已经被广泛使用.它只是没有像Delphi VCL那样标准化.
.net ×2
c# ×2
emacs ×2
exception ×2
abap ×1
asp.net ×1
asp.net-core ×1
asynchronous ×1
batch-file ×1
cmd ×1
common-lisp ×1
css ×1
delphi ×1
elisp ×1
enumerator ×1
html ×1
ienumerator ×1
iteration ×1
java ×1
javascript ×1
lisp ×1
oop ×1
sap ×1
xhtml ×1