我编写了一个servlet来处理我的Web应用程序中发生的异常并将它们映射到web.xml中
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/exceptionHandler</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
这是我在异常处理servlet service方法中所做的:
@Override
protected void service(HttpServletRequest req, HttpServletResponse arg1)
throws ServletException, IOException {
Object attribute = req.getAttribute("javax.servlet.error.exception");
if(attribute instanceof SocketException){
// don't do anything
}else{
super.service(req, arg1);
}
}.
Run Code Online (Sandbox Code Playgroud)
问题:
上述方法不起作用,堆栈跟踪正在打印到控制台.当用户请求某些内容然后关闭其浏览器时会发生这种情况.
题:
每当SocketException发生时,如何停止将printtrace打印到JBoss控制台?
这样做的原因:
我想避免SocketException在第一天结束时看到所有日志,因为我无法对这些信息做任何事情.
我正在尝试使用Heroku的自动证书管理为我的网站设置SSL.我的应用程序在heroku上myapp.herokuapp.com,我目前有子域转发设置,以便http://www.myapp.com正确显示我的应用程序.
我想要的是将我的网站托管在https://myapp.com.
我跑了heroku certs:auto:enable,但它显示:
=== Automatic Certificate Management is enabled on myapp
Domain Status
????????????????? ???????????
www.myapp.com Failing
Run Code Online (Sandbox Code Playgroud)
跑步heroku domains节目:
=== myapp Heroku Domain
myapp.herokuapp.com
=== myapp Custom Domains
Domain Name DNS Target
????????????????? ???????????????????????????????
www.myapp.com www.myapp.com.herokudns.com
Run Code Online (Sandbox Code Playgroud)
眼下,谷歌域名,我有一个子域从转发@.myapp.com到http://www.myapp.com.我还有一个自定义资源记录,其中包含名称www,类型CNAME和数据myapp.herokuapp.com..
我需要在设置中更改哪些内容才能托管我的网站https://myapp.com?
这个问题是一个跟进这个.
说我有一些课Foo.
class Foo {
protected String x = "x";
public String getX() {
return x;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个程序使用Foo并违反了LoD(Demeter法则).
class Bar {
protected Foo foo;
public Bar() {
this.foo = new Foo();
}
public Foo getFoo() {
return foo;
}
}
public static void main(String [] args) {
Bar bar = new Bar();
String x = bar.getFoo().getX();
}
Run Code Online (Sandbox Code Playgroud)
我可以通过两个步骤重构此代码以使用LoD.
bar.getFoo().getX()- > getFooX(bar)(提取到方法,也可以查找和替换出现)getFooX(bar)- > bar.getFooX()(转到实例方法,也找到并替换出现)使用的程序Bar不再违反LoD. …
java refactoring intellij-idea law-of-demeter automated-refactoring
在我的工作中,我们进行了调查,一项调查涉及多个步骤.我从事自动化工作,所以我围绕为这些调查创建的页面对象设计测试.我们将此特定调查称为"流量"调查,因为它有多个步骤.因此,您可以跳过步骤1(调查A),然后完成或跳过步骤2(调查B),然后完成或跳过步骤3(调查C).天真地,我们可以编写一个测试,其中只有以下方法:
public void completeSurveyA() {
//...
}
public void skipSurveyB() {
//...
}
public void completeSurveyB() {
//...
}
public void skipSurveyC() {
//...
}
public void completeSurveyC() {
//...
}
Run Code Online (Sandbox Code Playgroud)
你会像这样使用它
completeSurveyA();
skipSurveyB();
completeSurveyC();
Run Code Online (Sandbox Code Playgroud)
然而,这可能是一个问题,因为我们可能会completeSurveyB()在打电话completeSurveyA(),打电话completeSurveyA两次等之前打电话,测试会中断.为了避免这种情况,我介绍了一种不同的方法,在surveyA上调用方法将返回一个surveyB对象,该对象将返回一个surveyC对象.
public class SurveyFlow() {
public SurveyB completeSurveyA() {
//...
return new SurveyB();
}
private class SurveyB() {
public SurveyC skipSurveyB() {
//...
return new SurveyC();
}
public SurveyC completeSurveyB() {
//...
return new SurveyC();
}
private class SurveyC() …Run Code Online (Sandbox Code Playgroud) 我以前从未使用过 JFlex,也不知道它是如何工作的。基本上,我已经用 Java 为一种方案式语言构建了一个运行时,并且我的解析器是使用 Antlr 4 生成的,所以我有一个 .g4 文件,如下所示:
program: expression EOF;
expression: lambdaAbstraction | application| literal;
lambdaAbstraction: LP WS? LAMBDA (WS IDENTIFIER)* WS expression WS? RP;
application: LP WS? expression (WS expression)* WS? RP;
literal: FLOAT_LITERAL | INTEGER_LITERAL | IDENTIFIER | STRING_LITERAL;
STRING_LITERAL: '"' ~["]* '"' | '\'' ~[']* '\'' ;
FLOAT_LITERAL: [0-9]+ '.' [0-9]+;
INTEGER_LITERAL: [0-9]+;
IDENTIFIER: [a-zA-Z+/*-=?@]+;
LAMBDA: '\\';
LP: '(';
RP: ')';
WS: [ \n\r\t]+;
Run Code Online (Sandbox Code Playgroud)
一些例子(这样你可以感受到语法)。
(+ 1 2)= 3
((\ a b (+ a …
我Fraction在C++中的类中有一个重载运算符,它被设计为以整数形式从标准输入获取输入,1/2或者根据这些值32/4初始化Fraction对象.它有效,但我在捕捉错误方面遇到了麻烦.
// gets input from standard input in the form of (hopefully) int/int
std::istream& operator >>(std::istream& inputStream, Fraction& frac)
{
int inputNumerator, inputDenominator;
char slash;
if ((std::cin >> inputNumerator >> slash >> inputDenominator) && slash == '/')
{
if (inputDenominator == 0)
{
std::cout << "Denominator must not be 0." << std::endl;
throw std::invalid_argument("Denominator must not be 0.");
}
frac.numerator = inputNumerator;
frac.denominator = inputDenominator;
frac.reduce();
}
else
{
throw std::invalid_argument("Invalid syntax."); …Run Code Online (Sandbox Code Playgroud) 我需要一种方法将化学式分离成其组分.结果应如下所示:
Ag3PO4 -> [Ag3, P, O4]
H2O -> [H2, O]
CH3OOH -> [C, H3, O, O, H]
Ca3(PO4)2 -> [Ca3, (PO4)2]
Run Code Online (Sandbox Code Playgroud)
我不知道正则表达式语法,但我知道我需要这样的东西
[可选括号] [大写字母] [0或更多小写字母] [0或更多数字] [可选括号] [0或更多数字]
这很有效
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:@"[A-Z][a-z]*\\d*|\\([^)]+\\)\\d*"
options:0
error:nil];
NSArray *tests = [[NSArray alloc ] initWithObjects:@"Ca3(PO4)2", @"HCl", @"CaCO3", @"ZnCl2", @"C7H6O2", @"BaSO4", nil];
for (NSString *testString in tests)
{
NSLog(@"Testing: %@", testString);
NSArray *myArray = [regex matchesInString:testString options:0 range:NSMakeRange(0, [testString length])] ;
NSMutableArray *matches = [NSMutableArray arrayWithCapacity:[myArray count]];
for (NSTextCheckingResult *match in myArray) { …Run Code Online (Sandbox Code Playgroud) 我在Swift中为我的PFObject子类设置了这个非常简单的设置.
这是他们在代码中的样子:
富
import Foundation
class Foo : PFObject, PFSubclassing
{
class func parseClassName() -> String!
{
return "Foo"
}
}
Run Code Online (Sandbox Code Playgroud)
BAR1
import Foundation
class Bar1 : Foo {}
Run Code Online (Sandbox Code Playgroud)
BAR2
import Foundation
class Bar2 : Foo {}
Run Code Online (Sandbox Code Playgroud)
AppDelegate中 didFinishLaunching
Foo.registerSubclass()
Bar1.registerSubclass()
Bar2.registerSubclass()
Parse.setApplicationId("APP_ID", clientKey: "CLIENT_KEY")
Run Code Online (Sandbox Code Playgroud)
然后我在运行时收到此错误:
Tried to register both _TtC9CardForge4Bar1 and _TtC9CardForge4Bar2 as the native
PFObject subclass of Foo. Cannot determine the right class to use because neither
inherits from the other.
Run Code Online (Sandbox Code Playgroud)
看来我不能拥有一个PFObject子类的多个子类,但我在文档中看不到任何内容.这里发生了什么?什么是原生子类?
我想制作一个x形状矩阵(n_samples, n_classes),每个矩阵x[i]都是一个随机的单热矢量.这是一个缓慢的实现:
x = np.zeros((n_samples, n_classes))
J = np.random.choice(n_classes, n_samples)
for i, j in enumerate(J):
x[i, j] = 1
Run Code Online (Sandbox Code Playgroud)
什么是更加pythonic的方式来做到这一点?
我正在考虑使用它runtime.Stack来解析有关 goroutine 的信息(寻找泄漏)。问题在于,runtime.Stack将其输出作为必须解析的字符串返回,并且需要足够大小的字节缓冲区输入。我知道有一些库,例如gostackparse和panicparse,但它们都不适用于GODEBUG=tracebackancestors=<n>(其中 n > 0)。我需要这个,因为我想验证当前堆栈帧的后代 goroutine 的泄漏。
有没有办法获得runtime.Stack适用的结构化输出tracebackancestors?
java ×3
arrays ×1
c++ ×1
dns ×1
go ×1
grammar-kit ×1
heroku ×1
https ×1
inputstream ×1
jflex ×1
numpy ×1
objective-c ×1
python ×1
refactoring ×1
regex ×1
servlets ×1
ssl ×1
swift ×1
tomcat ×1
try-catch ×1
user-input ×1
web.xml ×1